我正在创建一个用作反向隧道的 Docker 容器。我现在想强化解决方案,但我有一个有趣的困境,我不确定最好的方法是什么。
目前,容器托管一个简单的 Web 应用程序,当它向端点发出 POST 时,它将启动 sshd,并使用 autossh 创建到跳转箱的反向隧道。当它收到正确的 POST 以关闭端点时,它会停止 sshd 和 autossh。
这很有效。
问题是我现在想停止以 root 身份运行所有内容的容器,但以任何其他用户身份运行却没有正确的权限来启动或停止 ssh 服务器,因此我收到此错误:
service ssh start
mkdir: cannot create directory '/run/sshd': Permission denied
经过搜索,似乎我无法在没有提升权限的情况下启动/停止 sshd。我可以在 docker 构建文件中更改用户之前启动 sshd。
哪种折衷方案最好?以低权限用户身份运行,但始终让 sshd 运行(但实际上无法连接),还是以 root 身份运行并在需要时启动/停止 sshd?