【问题标题】:can't ssh to docker container of jenkinsci/ssh-slave无法 ssh 到 jenkinsci/ssh-slave 的 docker 容器
【发布时间】:2016-08-03 17:56:48
【问题描述】:

我正在使用jenkinsci/ssh-slave 的 docker 镜像 首先,我在我的机器上生成了一个密钥:

ssh-keygen

我将公钥的内容粘贴到我的 docker run 命令中,如下所示:

$ docker run jenkinsci/ssh-slave "ssh-rsa AAAAB3NzaC1yc2EAAAADA.."

当容器运行时,我尝试连接(作为 root 用户和 jenkins 用户)。首先我需要获取容器IP:

$ docker inspect 65ebc0f67879 | grep IP

172.17.0.x

我尝试 ssh:

$ ssh -i id_rsa root@172.17.0.x

但是Permission denied (publickey). 我究竟做错了什么? 当我exec 容器时,我在authorized_keys 中看到我的公钥:

cat /home/jenkins/.ssh/authorized_keys

内容:

ssh-rsa AAAAB3NzaC1yc2EAAAADA..

【问题讨论】:

    标签: jenkins ssh docker


    【解决方案1】:

    尝试以“jenkins”用户身份登录:

    ssh -i id_rsa jenkins@172.17.0.x
    

    相关代码行在这里:

    【讨论】:

      【解决方案2】:

      如果您以 jenkins 用户身份尝试,则会收到错误消息:Permission denied (publickey)。

      /home/jenkins/.ssh 权限正确,但所有权错误。

      drwxr-xr-x 3 jenkins jenkins 4096 Nov 21 10:00 .
      drwxr-xr-x 1 root    root    4096 Mar 31  2017 ..
      -rw-r--r-- 1 jenkins jenkins  220 Nov  5  2016 .bash_logout
      -rw-r--r-- 1 jenkins jenkins 3515 Nov  5  2016 .bashrc
      -rw-r--r-- 1 jenkins jenkins  675 Nov  5  2016 .profile
      drwxr-xr-x 2 root    root    4096 Nov 21 09:55 .ssh
      

      我试图通过使用命令更新我的 Dockerfile 来改变这一点

      RUN chown -Rf jenkins:jenkins "${JENKINS_AGENT_HOME}/.ssh"
      

      并且 owner:group 没有改变(可能 entrypoint.sh 会覆盖它)

      Step 7/12 : COPY ./ssh/authorized_keys /home/jenkins/.ssh/authorized_keys
       ---> Using cache
       ---> fb76b6c80648
       Step 8/12 : RUN chmod 600 /home/jenkins/.ssh/authorized_keys
       ---> Running in c76f24a8e2d8
       ---> 2e2398ccd53c
      Step 9/12 : RUN chmod 700 /home/jenkins/.ssh
      ---> Running in 22e4983555bb
      ---> 9ac1d7055294
      Step 10/12 : RUN chown -Rf jenkins:jenkins "${JENKINS_AGENT_HOME}/.ssh"
      ---> Running in 1636f6f08bdf
      ---> 58f5679f90f5
      Step 11/12 : RUN ls -al /home/jenkins/
      ---> Running in 51fe02e603df
      total 24
      drwxr-xr-x 3 jenkins jenkins 4096 Nov 21 10:00 .
      drwxr-xr-x 1 root    root    4096 Mar 31  2017 ..
      -rw-r--r-- 1 jenkins jenkins  220 Nov  5  2016 .bash_logout
      -rw-r--r-- 1 jenkins jenkins 3515 Nov  5  2016 .bashrc
      -rw-r--r-- 1 jenkins jenkins  675 Nov  5  2016 .profile
      drwxr-xr-x 2 root    root    4096 Nov 21 09:55 .ssh
      ---> 997f3401475c
      Step 12/12 : COPY ./resolv.conf /etc/resolv.conf
      ---> f5111f5dec09
      

      我没有运气,所以我使用了 images 环境变量 docker run -e "JENKINS_SLAVE_SSH_PUBKEY=<public key>" my-slave

      还有,嘿!成功了!

      解决方案:使用让您感觉舒适的基础映像构建您自己的 jenkins slave。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-13
        • 2016-09-08
        • 1970-01-01
        • 1970-01-01
        • 2015-05-30
        • 2017-01-22
        • 2013-09-05
        • 1970-01-01
        相关资源
        最近更新 更多