2016-08-19 216 views
1

我剛剛開始與詹金斯,我有麻煩通過rsync連接到遠程機器。從詹金斯shell腳本運行rsync

我猜jenkins不知道要使用哪個ssh身份文件,或者它知道,但不知道如何解密它?從其他問題我收集到的Gtk-Warning可能是因爲它無法打開「輸入關鍵字」 - 提示。

rsync -azvh /var/lib/jenkins/workspace/ofen [email protected]_server:/my_project/ofen 
No protocol specified 

(ssh-askpass:19928): Gtk-WARNING **: cannot open display: :0 
Host key verification failed. 
rsync: connection unexpectedly closed (0 bytes received so far) [sender] 
rsync error: unexplained error (code 255) at io.c(226) [sender=3.1.0] 

一切正常,當我從命令行嘗試它。

回答

4

需要將密鑰加載爲Jenkin的SSH代理配置的一部分。

  1. 通過證書添加私鑰詹金斯/ SSH私鑰包括密碼短語如果使用了
  2. 在工作中啓用SSH代理,並給它使用SSH密鑰證書

事代理現在可以使用加載的密鑰。

+0

我安裝了SSH代理插件。起初我試圖將私鑰直接包含在證書對話框中,但它不起作用。我將ssh-key複製到$ JENKINS_HOME/.ssh並將憑據設置更改爲使用此目錄。現在它可以工作。 – Saskia

0

「身份」取決於您的作業運行

在主機上運行時
  • ,它的運行詹金斯
  • 上的從用戶,它的用戶,你用於連接從站

您需要將該身份的公鑰添加到用戶sascha.ssh/authorized_keys文件中。這將使基於公鑰的認證和rsync應該運行得很好。