【问题标题】:Setting ssh public keys on Docker image在 Docker 映像上设置 ssh 公钥
【发布时间】:2014-01-20 10:55:42
【问题描述】:

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

【问题讨论】:

  • 另一个选项是使用 "docker run -t -i -v /root/.ssh:/root/.ssh:ro yourimage" 但这仅适用于 root 用户 .ssh 目录,因为 userids在主机/容器上必须匹配:(

标签: ssh key docker sshd authorized-keys


【解决方案1】:

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

我将此 sn-p 用作图像入口点脚本的一部分:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-20
    • 2023-03-07
    • 2012-08-15
    • 2017-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    相关资源
    最近更新 更多