4

我设置了一个支持 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”的 shell 脚本?
4

1 回答 1

8

如何生成私钥并将其显示给用户?

我将此片段用作图像入口点脚本的一部分:

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
于 2014-01-07T17:08:44.490 回答