运行 来自詹金斯的 rsync shell 脚本

Running rsync from jenkins shell script

我刚开始使用 jenkins,但在通过 rsync 连接到远程计算机时遇到了问题。

我猜 jenkins 不知道要使用哪个 ssh 身份文件,或者它可能知道,但不知道如何解密?从其他问题我了解到 Gtk-Warning 可能是因为它无法打开 "enter keyphrase"-prompt.

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]

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

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

  1. 通过 credentials/SSH 私钥将私钥添加到 Jenkins,如果使用的话包括密码
  2. 在作业上启用 SSH 代理并为其提供凭据

使用 SSH 密钥和代理的事物现在可以使用加载的密钥。

"identity"取决于你的工作运行宁:

  • 当 运行在 master 上时,运行s Jenkins
  • 是用户
  • 在slave上,就是你用来连接slave的用户

您需要将该身份的 public 密钥添加到用户 sascha.ssh/authorized_keys 文件中。这将启用 public 基于密钥的身份验证并且 rsync 应该 运行 就好了。