我在Windows 7上使用boot2docker。VirtualBox正在boot2docker VM(c:\Users\Me\.ssh)内从Windows(/c/Users/Me/.ssh)挂载Windows〜/.ssh目录。

我的Dockerfile正在配置要用作开发环境的镜像。它将用于自动部署的一组SSH key 和一个配置复制到容器中。这很好。容器启动时,它将自动在镜像内克隆git存储库,而不会提示。

我现在正尝试使用相同的镜像,但允许用户通过docker run -v ...挂载自己的.ssh目录,以便他们可以选择使用自己的SSH key 。当我通过在运行容器的命令中添加-v /home/myself/.ssh:/home/guest/.ssh来执行此操作时,我收到有关权限过于开放的SSH警告:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0777 for '/home/guest/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /home/guest/.ssh/id_rsa

我尝试在ENTRYPOINT脚本中添加chmod -R 700 /home/guest/.ssh的行,但似乎无效或在装入卷之前执行了该行。

我还尝试从正在运行的容器中更改/home/guest/.ssh的权限,但无法这样做。运行chmod -R 700 /home/guest/.ssh时没有错误,但权限没有更改。

我在另一个有关Docker批量许可的问题中看到了询问者使用ACL的建议,但是我不知道这是否是一个好主意,或者它是否会起作用。

无论如何,允许用户在Docker容器内使用自己的SSH key 和SSH配置的最简单方法是什么?

最佳答案

稍微有点笨拙,但是您可以在启动Shell时将.ssh文件复制到新目录中并对其进行chmod设置。

IE。通过一个卷向容器提供SSH文件,但是使用shell ~/.profile将它们复制到〜/.ssh。

关于docker - 如何将用户现有的.ssh目录挂载到Docker容器中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27069193/

10-16 12:15
查看更多