从一个 docker 容器无密码登录到另一个

Posted

技术标签:

【中文标题】从一个 docker 容器无密码登录到另一个【英文标题】:login without password from one docker container into another 【发布时间】:2020-11-30 08:31:31 【问题描述】:

我创建了 2 个 docker 容器。一个 Jenkins 和一个运行带有 ubuntu 基础的 openssh 服务器的容器。 我配置了 Jenkins 容器购买拉取 Jenkins 映像,对于 openssh 服务器,我使用 Dockerfile 创建了映像。 我生成了密钥文件并将公钥复制到 openssh 服务器的 authorized_keys 中。 然后当我尝试通过 Jenkins 容器登录到 openssh 服务器时使用 ssh -i remote-key remote_user@remote-host 提示我输入密码。

这是我的 DockerFile 和 docker-compose Docker 文件:

From ubuntu
Run apt-get update
Run apt-get install -y openssh-server
Run useradd -m -d /home/remote_user remote_user && \
    echo "remote_user:1234" |chpasswd  && \
    mkdir -p /home/remote_user/.ssh && \
    chmod 700 /home/remote_user/.ssh
Copy remote-key.pub /home/remote_user/.ssh/authorised_keys
Run chown remote_user:remote_user -R /home/remote_user/.ssh && \
    chmod 600 /home/remote_user/.ssh/authorised_keys
RUN service ssh start
EXPOSE 22
CMD ["/usr/sbin/sshd","-D"]`

码头工人撰写

    version: '3'
services:
        jenkins:
                container_name: jenkins
                image: jenkins/jenkins
                ports:
                     -   "8080:8080"
                volumes:
                     -  "/home/sarthak/jenkins/jenkins1/jenkins1_home:/var/jenkins_home"
                networks:
                     -   net
        remote_host:
                container_name: remote-host
                image: remote-host
                build:
                        context: /home/sarthak/jenkins/jenkins1/
                networks:
                     -   net
networks:
        net:

通过密码登录成功,但我需要无密码登录。请帮忙

【问题讨论】:

尝试将authorised_keys 更改为authorized_keys @MarkoE:感谢您指出。愚蠢的错误导致巨大的差异。成功了 我也将其作为答案发布,因此您可以将其标记为正确。 顺便说一句:也许你想看看Docker Buildkit feature for managing credentials?帮我解决了工作中的 SSH 问题。 【参考方案1】:

创建Dockerfile的时候应该把authorised_keys改成authorized_keys,两行有同样的问题:

COPY remote-key.pub /home/remote_user/.ssh/authorized_keys

RUN chown remote_user:remote_user -R /home/remote_user/.ssh && \
    chmod 600 /home/remote_user/.ssh/authorized_keys

【讨论】:

以上是关于从一个 docker 容器无密码登录到另一个的主要内容,如果未能解决你的问题,请参考以下文章

使用 Firebase 进行无密码登录,从 PC 打开链接

我可以跳过 Firebase 中无密码登录方法的第一步吗?

oracle无密码登录

ssh无输入密码登录问题

linux ssh scp无密码登录

将日志输出到Docker容器外