4

我使用 Jenkins ssh-agent 插件来为我的构建提供 ssh 凭据,这可以完美运行,但是我将其设置为轮询 scm(在本例中为 bitbucket git)以检查更改。

当然,要访问 repo 以轮询更改,它还需要那些 ssh 凭据,我似乎无法在 wiki 中找到与此相关的任何内容,但必须有办法做到这一点。

对他们来说,没有实现它似乎是一件很愚蠢的事情,毕竟如果你需要 ssh 凭证来克隆和构建,你还需要它们来轮询吗?

4

4 回答 4

4

从 SSH 密钥中删除密码是不可接受的步骤。

jenkins ssh-agent 插件有望解决这个问题,但据我所知,它目前在轮询方面已被破坏:

https://issues.jenkins-ci.org/browse/JENKINS-21226

从 Jenkins 1.545 开始,我还没有找到一种可行的、安全的方法来实现基于 ssh 的服务器通信,该通信还包括轮询。

于 2014-01-07T03:59:42.263 回答
2

假设您的作业在 Jenkins master 上运行。为了能够对需要 SSL 连接的 Git 存储库进行轮询:

  1. 备份你的私钥。
  2. 使用该解决方案从您的私钥中删除密码:如何在无需创建新密钥的情况下删除 SSH 密钥的密码?
  3. 将您的 Jenkins 服务器上的无密码私钥添加到 Jenkins 的主目录 + .ssh 子文件夹 fe 对于 CEntOS,它位于 /var/lib/jenkins/.ssh 中。确保只有 jenkins 用户可以访问该密钥(使用 chmod 600 和 chown jenkins:jenkins)。
  4. 在 Jenkins 的凭据管理器中添加新的 SSH 密钥和用户名,并为刚刚配置的私钥 fe /var/lib/jenkins/.ssh/id_rsa 指定完整位置
  5. 设置您的作业并为 Git 存储库设置和 SSH 代理插件指定这些凭据。

在这些步骤之后,您可以在必要时进行轮询以触发 Job 以及从 Job 本身克隆和获取。

于 2013-11-21T19:03:00.967 回答
1

编辑:虽然下面的解决方案显然适用于该 JIRA 问题的评论者,但它不适用于我。你的旅费可能会改变。

在工作的配置页面的其他行为下,添加“使用工作区强制轮询”

似乎从 2014 年 9 月开始可用。

通过https://issues.jenkins-ci.org/browse/JENKINS-21226?focusedCommentId=210643&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-210643

于 2014-12-12T20:52:28.853 回答
0

git 插件信息本身中有很多关于 SSH 密钥的信息:

https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin

基本上,您需要在运行 jenkins 的 CI 用户上安装密钥。(未集成 SSH 凭据插件。)

于 2013-10-05T02:06:18.023 回答