我使用 Jenkins ssh-agent 插件来为我的构建提供 ssh 凭据,这可以完美运行,但是我将其设置为轮询 scm(在本例中为 bitbucket git)以检查更改。
当然,要访问 repo 以轮询更改,它还需要那些 ssh 凭据,我似乎无法在 wiki 中找到与此相关的任何内容,但必须有办法做到这一点。
对他们来说,没有实现它似乎是一件很愚蠢的事情,毕竟如果你需要 ssh 凭证来克隆和构建,你还需要它们来轮询吗?
我使用 Jenkins ssh-agent 插件来为我的构建提供 ssh 凭据,这可以完美运行,但是我将其设置为轮询 scm(在本例中为 bitbucket git)以检查更改。
当然,要访问 repo 以轮询更改,它还需要那些 ssh 凭据,我似乎无法在 wiki 中找到与此相关的任何内容,但必须有办法做到这一点。
对他们来说,没有实现它似乎是一件很愚蠢的事情,毕竟如果你需要 ssh 凭证来克隆和构建,你还需要它们来轮询吗?
从 SSH 密钥中删除密码是不可接受的步骤。
jenkins ssh-agent 插件有望解决这个问题,但据我所知,它目前在轮询方面已被破坏:
https://issues.jenkins-ci.org/browse/JENKINS-21226
从 Jenkins 1.545 开始,我还没有找到一种可行的、安全的方法来实现基于 ssh 的服务器通信,该通信还包括轮询。
假设您的作业在 Jenkins master 上运行。为了能够对需要 SSL 连接的 Git 存储库进行轮询:
在这些步骤之后,您可以在必要时进行轮询以触发 Job 以及从 Job 本身克隆和获取。
编辑:虽然下面的解决方案显然适用于该 JIRA 问题的评论者,但它不适用于我。你的旅费可能会改变。
在工作的配置页面的其他行为下,添加“使用工作区强制轮询”
似乎从 2014 年 9 月开始可用。
git 插件信息本身中有很多关于 SSH 密钥的信息:
https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin
基本上,您需要在运行 jenkins 的 CI 用户上安装密钥。(未集成 SSH 凭据插件。)