运维开发网

当ssh到容器时问密码

运维开发网 https://www.qedev.com 2020-07-07 18:33 出处:网络 作者:运维开发网整理
我创建了一个docker镜像,经过测试,用SSH登录容器.但是,当我尝试ssh到容器时,我被问到root密码.有任何想法来解决它. Dockerfile FROM ubuntu:trusty RUN apt-get update RUN apt-get install -y openssh-server supervisor vim build-essential git RUN mkdir
我创建了一个docker镜像,经过测试,用SSH登录容器.但是,当我尝试ssh到容器时,我被问到root密码.有任何想法来解决它.

Dockerfile

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
您需要将公钥添加到容器根/ .ssh / authorized_keys

如果sshd在那里找不到您的公钥,它将回退到用户名/密码身份验证.

一个例子是“Setting ssh public keys on Docker image”,但我不喜欢它,因为它意味着容器有私钥(它不需要它)

最好是:

>在本地生成您的公钥/私钥.

>在Dockerfile中添加一个COPY yourPublicKey /root/.ssh/authorized_keys

这将生成一个图像,其容器将能够被ssh访问.

确保在您的主机上,您的$HOME / .ssh确实拥有私钥id_rsa和公钥id_rsa.pub.

这将启用docker主机和Docker容器之间的ssh身份验证,遵循此处显示的常规(即,不特定于docker)ssh身份验证机制:

当ssh到容器时问密码

(来源“GitHub public key authentication”,从Sébastien Saunier ‏- @ssaunier)

0

精彩评论

暂无评论...
验证码 换一张
取 消