在 Docker 镜像上设置 ssh 公钥



我设置了一个支持 ssh 的 Docker 镜像。没问题,很多例子。但是,大多数示例显示使用 passwd 设置密码。我想分发我的图像。拥有固定密码,尤其是root密码,似乎是一个巨大的安全漏洞。对我来说,更好的是使用没有密码的root设置映像。当用户获得图像时,他们会将其公共 ssh 文件复制到映像/root/.ssh/authorized_keys 文件中。

有没有推荐的方法可以做到这一点?

  1. 提供一个使用 ADD 命令构建在我的映像上的 Dockerfile该用户可以编辑吗?
  2. 提供一个运行类似"cat ~/.ssh/authorized_keys |docker run -i sh -c 'cat> root/.ssh/authorized_keys"?

生成私钥并将其显示给用户怎么样?

我使用此代码片段作为图像入口点脚本的一部分:

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

相关内容

  • 没有找到相关文章

最新更新