在Docker镜像上设置ssh公钥

Eri*_*reg 4 ssh key sshd authorized-keys docker

我设置了支持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脚本?

Rol*_*Max 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
Run Code Online (Sandbox Code Playgroud)