如何将用户的现有.ssh目录挂载到Docker容器中?

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

我的Dockerfile正在configuration一个图像作为开发环境使用。 它向容器复制一组用于自动部署的SSH密钥和configuration。 这工作正常。 当容器启动时,它会自动克隆映像中的git存储库而不提示。

我现在试图使用相同的图像,但允许用户通过docker run -v ...自己的.ssh目录,以便他们可以select使用自己的SSH密钥来代替。 当我通过在运行容器的命令中添加-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的build议,但是我不知道这是否是一个好主意,或者甚至可以工作。

无论如何,允许用户在Docker容器中使用自己的SSH密钥和SSHconfiguration最简单的方法是什么?

稍微有些不过,但是你可以将.ssh文件复制到一个新的目录中,并在shell启动时对它们进行chmod。

即通过一个卷给容器的SSH文件,但使用~/.profile复制到〜/ .ssh。