我设置了一个支持 ssh 的 Docker 镜像。没问题,有很多例子。但是,大多数示例都显示使用 passwd 设置密码。我想分发我的图像。拥有固定密码,尤其是 root 密码,似乎是一个巨大的安全漏洞。对我来说,更好的方法是使用没有密码的 root 设置镜像。当用户获取镜像时,他们会将其公共(public) ssh 文件复制到镜像/root/.ssh/authorized_keys 文件。
有推荐的方法吗?
- 提供一个使用 ADD 命令在我的镜像上构建的 Dockerfile 该用户可以编辑吗?
- 提供一个运行“cat ~/.ssh/authorized_keys | docker run -i sh -c 'cat > root/.ssh/authorized_keys”之类的 shell 脚本?
最佳答案
如何生成私钥并将其显示给用户?
我使用此代码片段作为图像入口点脚本的一部分:
KEYGEN=/usr/bin/ssh-keygen
KEYFILE=/root/.ssh/id_rsa
if [ ! -f $KEYFILE ]; then
$KEYGEN -q -t rsa -N "" -f $KEYFILE
cat $KEYFILE.pub >> /root/.ssh/authorized_keys
fi
echo "== Use this private key to log in =="
cat $KEYFILE
关于ssh - 在 Docker 镜像上设置 ssh 公钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20892340/