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

login without password from one docker container into another

我创建了 2 个 docker 容器。一个 Jenkins 和一个容器 运行 一个具有 ubuntu 基础的 openssh 服务器。 我配置了 Jenkins 容器购买拉 Jenkins 图像和 openssh 服务器我使用 Dockerfile 创建了图像。 我生成了密钥文件并将 public 密钥复制到 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"]`

docker-撰写

    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:

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

你应该在创建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