ssh 到容器时询问密码
Asked password when ssh to container
我创建了一个 docker 映像,该映像经过测试以使用 SSH 登录容器。但是,当我尝试通过 ssh 进入容器时,系统会询问我 root 密码。任何解决它的想法。
Docker 文件
FROM ubuntu:trusty
RUN apt-get update
RUN apt-get install -y openssh-server supervisor vim build-essential git
RUN mkdir -p /var/run/sshd
ADD supervisord/sshd.conf /etc/supervisor/conf.d/sshd.conf
RUN echo 'root:root' | chpasswd
EXPOSE 22
CMD ["/usr/bin/supervisord"]
supervisord/sshd.conf
[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D
您需要将 public 密钥添加到容器 root/.ssh/authorized_keys
如果 sshd 在那里找不到您的 public 密钥,它将回退到 username/password 身份验证。
一个例子是“Setting ssh public keys on Docker image”,但我不喜欢它,因为它意味着容器有私钥(它不需要它)
最好是:
- 在本地生成您的 public/private 密钥。
- 在您的 Dockerfile
中添加 COPY yourPublicKey /root/.ssh/authorized_keys
这会生成一个图像,其容器将能够通过 ssh 访问。
确保在您的主机上,您的 $HOME/.ssh
确实有私钥 id_rsa
和 public 密钥 id_rsa.pub
。
这会在您的 docker 主机和您的 docker 容器之间启用 ssh 身份验证,遵循通用的(即 not 特定于 docker) 此处显示的 ssh 身份验证机制:
(来源“GitHub public key authentication", from Sébastien Saunier - @ssaunier)
我创建了一个 docker 映像,该映像经过测试以使用 SSH 登录容器。但是,当我尝试通过 ssh 进入容器时,系统会询问我 root 密码。任何解决它的想法。
Docker 文件
FROM ubuntu:trusty
RUN apt-get update
RUN apt-get install -y openssh-server supervisor vim build-essential git
RUN mkdir -p /var/run/sshd
ADD supervisord/sshd.conf /etc/supervisor/conf.d/sshd.conf
RUN echo 'root:root' | chpasswd
EXPOSE 22
CMD ["/usr/bin/supervisord"]
supervisord/sshd.conf
[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D
您需要将 public 密钥添加到容器 root/.ssh/authorized_keys
如果 sshd 在那里找不到您的 public 密钥,它将回退到 username/password 身份验证。
一个例子是“Setting ssh public keys on Docker image”,但我不喜欢它,因为它意味着容器有私钥(它不需要它)
最好是:
- 在本地生成您的 public/private 密钥。
- 在您的 Dockerfile 中添加
COPY yourPublicKey /root/.ssh/authorized_keys
这会生成一个图像,其容器将能够通过 ssh 访问。
确保在您的主机上,您的 $HOME/.ssh
确实有私钥 id_rsa
和 public 密钥 id_rsa.pub
。
这会在您的 docker 主机和您的 docker 容器之间启用 ssh 身份验证,遵循通用的(即 not 特定于 docker) 此处显示的 ssh 身份验证机制:
(来源“GitHub public key authentication", from Sébastien Saunier - @ssaunier)