gpt4 book ai didi

ssh - ssh 到容器时询问密码

转载 作者:IT老高 更新时间:2023-10-28 21:43:38 30 4
gpt4 key购买 nike

我创建了一个 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

最佳答案

您需要将您的公钥添加到容器root/.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 身份验证机制:

http://sebastien.saunier.me/images/posts/SSH%20Connection%20explained.png

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

关于ssh - ssh 到容器时询问密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37160574/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com