Tos*_*shi 5 ssh openssh docker
我创建了一个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"]
Run Code Online (Sandbox Code Playgroud)
supervisord/sshd.conf
[supervisord]
nodaemon=true
[program:sshd]
command=/usr/sbin/sshd -D
Run Code Online (Sandbox Code Playgroud)
您需要将公钥添加到容器中 root/.ssh/authorized_keys
如果sshd在那里找不到您的公钥,它将回退到用户名/密码身份验证.
一个例子是" 在Docker镜像上设置ssh公钥 ",但我不喜欢它,因为它意味着容器有私钥(它不需要它)
最好是:
COPY yourPublicKey /root/.ssh/authorized_keys
在Dockerfile中添加一个这将生成一个图像,其容器将能够被ssh访问.
确保在您的主机上$HOME/.ssh
确实拥有私钥id_rsa
和公钥id_rsa.pub
.
这将启用docker主机和docker容器之间的ssh身份验证,遵循此处显示的常规(即,不特定于docker)ssh身份验证机制:
(来自SébastienSaunier的源代码" GitHub公钥认证 " - @ssaunier)
归档时间: |
|
查看次数: |
7031 次 |
最近记录: |