2017-05-29 149 views
1

我有一些使用Jenkins管道模型定義定義的Jenkins作業,它們構建了NPM項目。我使用Docker容器來構建這些項目(僅使用node + npm + yarn的常見圖像)。如何在Jenkins管道中使用SSH?

構建的結果包含在dist/文件夾中,我使用zip pipeline命令壓縮了該文件夾。

我想將此zip文件複製到使用SSH/SCP(使用私鑰驗證)的其他服務器。我的私鑰被添加到Jenkins環境(憑證管理器)中,但是當我使用Docker容器時,SSH連接無法建立。

我試着添加agent { label 'master' }來使用Jenkins主節點進行文件傳輸,但它似乎創建了一個乾淨的工作空間,帶有新的Git獲取,並且沒有構建文件。

在此先感謝您的支持。試圖SSH代理插件後

UPDATE:

試圖SSH代理插件後,我有這樣的輸出:

Identity added: /srv/jenkins3/workspace/[email protected]/private_key_370451445598243031.key (rsa w/o comment) 
[ssh-agent] Started. 
[myjob-TFD] Running shell script 
+ scp -r dist [email protected]:/var/www/xxx 
$ docker exec bfda17664965b14281eef8670b34f83e0ff60218b04cfa56ba3c0ab23d94d035 env SSH_AGENT_PID=1424 SSH_AUTH_SOCK=/tmp/ssh-k658r0O76Yqb/agent.1419 ssh-agent -k 
unset SSH_AUTH_SOCK; 
unset SSH_AGENT_PID; 
echo Agent pid 1424 killed; 
[ssh-agent] Stopped. 
Host key verification failed. 
lost connection 

任何想法授權添加遠程主機?

+0

我有同樣的問題,sshagent插件不能在容器中工作 – red888

回答

-1

要將遠程主機添加到已知主機,並希望能夠應對您的錯誤,請嘗試從jenkins主機手動將ssh作爲jenkins用戶的目標主機。

獲取安裝jenkins的主機。類型

須藤蘇詹金斯

現在使用ssh或scp像

SSH用戶名@服務器

應當會提示是這樣的:

主機「服務器(ip)」的真實性無法建立。 ECDSA密鑰指紋是SHA256:一些奇怪的字符串。 您確定要繼續連接(是/否)嗎?

鍵入yes。服務器將作爲已知主機永久添加。甚至不要打擾傳遞密碼,只需按Ctrl + C並嘗試運行jenkins的工作。希望它會有所幫助。

+0

爲什麼要投票?這是更新問題的正確答案。 –