从jenkins shell脚本运行rsync

时间:2016-08-19 10:17:13

标签: jenkins ssh rsync

我刚开始使用jenkins而且我无法通过rsync连接到远程计算机。

我猜jenkins不知道要使用哪个ssh身份文件,也许它知道,但不知道如何解密它?从其他问题我收集到Gtk-Warning可能是因为它无法打开“输入关键短语” - 提示。

rsync -azvh /var/lib/jenkins/workspace/ofen sascha@my_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]

当我从命令行尝试时,一切正常。

2 个答案:

答案 0 :(得分:5)

需要将密钥作为Jenkin的 SSH代理配置的一部分加载。

  1. 通过凭据/ SSH私钥将私钥添加到Jenkins,包括密码(如果使用了密码)
  2. 在作业上启用SSH代理并为其提供凭据
  3. 使用SSH密钥和代理的东西现在可以使用加载的密钥。

答案 1 :(得分:0)

"身份" 取决于您的工作正在运行

  • 在主服务器上运行时,它是运行Jenkins的用户
  • 在奴隶上,它是您用来连接奴隶的用户

您需要将该标识的公钥添加到用户.ssh/authorized_keys的{​​{1}}文件中。这将启用基于公钥的身份验证,sascha运行得很好。