Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 在轮询SCM时对jenkins使用ssh代理_Git_Jenkins_Bitbucket_Jenkins Plugins_Ssh Agent - Fatal编程技术网

Git 在轮询SCM时对jenkins使用ssh代理

Git 在轮询SCM时对jenkins使用ssh代理,git,jenkins,bitbucket,jenkins-plugins,ssh-agent,Git,Jenkins,Bitbucket,Jenkins Plugins,Ssh Agent,我使用Jenkins ssh代理插件为我的构建提供ssh凭据,这非常有效,但是我将其设置为轮询scm(在本例中为bitbucket git)以检查更改 当然,要访问repo以轮询更改,它还需要那些ssh凭据,我在wiki中似乎找不到任何与此相关的内容,但必须有一种方法来做到这一点 对于他们来说,没有实现它似乎是一件愚蠢的事情,毕竟,如果您需要ssh凭据来克隆和构建,那么您也需要它们来轮询,对吗 git插件信息本身中有很多关于SSH密钥的信息: 基本上,您需要在运行jenkins的CI用户上安装

我使用Jenkins ssh代理插件为我的构建提供ssh凭据,这非常有效,但是我将其设置为轮询scm(在本例中为bitbucket git)以检查更改

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


对于他们来说,没有实现它似乎是一件愚蠢的事情,毕竟,如果您需要ssh凭据来克隆和构建,那么您也需要它们来轮询,对吗

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


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

假设您的作业在Jenkins master上运行。 要能够对需要SSL连接的Git repo进行轮询,请执行以下操作:

  • 备份您的私钥
  • 使用该解决方案从私钥中删除密码短语:
  • 将Jenkins服务器上的无密码私钥添加到Jenkins的home dir+.ssh子文件夹f.e中。对于CEntOS,它位于/var/lib/Jenkins/.ssh中。确保只有jenkins用户可以访问该密钥(使用chmod 600,chown jenkins:jenkins)
  • 在Jenkins的凭据管理器中,使用用户名添加新的SSH密钥,并为刚刚配置的私钥f.e./var/lib/Jenkins/.SSH/id\u rsa指定完整位置
  • 设置作业并为Git repo设置和SSH代理插件指定这些凭据

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

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

    预计将解决此问题,但据我所知,就投票而言,它目前处于中断状态:


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

    编辑:虽然下面的解决方案显然适用于JIRA问题的评论者,但对我来说并不适用。您的里程可能会有所不同

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

    似乎从2014年9月开始提供


    通过

    回答是否过时?