gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 21:38:09 24 4
gpt4 key购买 nike

我在 Windows 7 上使用 boot2docker。VirtualBox 正在 boot2docker VM(/c/Users/Me/.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。

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

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com