2016-08-03 45 views
1

我使用的jenkinsci/ssh-slave 首先泊塢窗像我產生我的機器上的一個鍵:不能ssh來泊塢窗jenkinsci/SSH-從集裝箱

ssh-keygen 

我貼我的公鑰的內容在我的搬運工運行命令所以它看起來像:

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

當容器運行時我嘗試連接(以根用戶身份和用戶詹金斯)。首先,我需要得到容器IP:

$ docker inspect 65ebc0f67879 | grep IP 

172.17.0.x 

我嘗試SSH:

$ ssh -i id_rsa [email protected] 

Permission denied (publickey). 我在做什麼錯? 當我exec容器我看到authorized_keys我的公鑰:

cat /home/jenkins/.ssh/authorized_keys 

內容:

ssh-rsa AAAAB3NzaC1yc2EAAAADA.. 

回答

1

如果您嘗試爲用戶詹金斯那麼你會得到錯誤:權限被拒絕(公鑰)。

/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" 

和擁有者變更的是:組不改變(可能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 

我沒有運氣,所以我用圖像環境變量 docker run -e "JENKINS_SLAVE_SSH_PUBKEY=<public key>" my-slave

而且,嘿!有效!

解決方案:通過使用讓您感覺舒適的基礎圖像構建您自己的jenkins奴隸。