如何使用Jenkins签出几个私人Github转发



我对Jenkins和私有Github repos有一个小问题。要查看私人回购,通常需要两件事之一:

  • 该repo上用户的专用SSH密钥
  • 该repo的已注册"部署密钥"的专用SSH密钥

部署密钥是为这种交互而创建的。问题是部署密钥在各个项目中必须是唯一的,所以我每次都必须使用不同的密钥。这意味着,对于每个额外的repo,我都必须为Jenkins用户的ssh代理添加另一个密钥
这也意味着,在默认情况下,代理会尝试所有可用的密钥,并且可能会在使用错误的密钥进行几次错误尝试后删除连接。

Jenkins-git插件似乎不允许将其指向SSH密钥。Jenkins在结账前不允许任何命令行交互,所以我不能使用任何bash技巧来设置正确的密钥。

到目前为止,唯一的解决方案似乎是:

  1. 在github中创建一个"my_jenkins_account"用户
  2. 向用户添加公钥
  3. 将我想使用Jenkins结账的账户添加到repos
  4. 将用户的私钥添加到jenkins用户

有其他建议吗?

这并不是一个确切的答案,只是黑暗中的回声,让你知道我做了几乎相同的事情。

  1. 以名为jenkins的用户身份运行Jenkins
  2. sudo作为该用户并创建一个公共ssh密钥
  3. 创建一个名为myorg-machines的免费GitHub帐户
  4. 将此jenkins用户的公共ssh密钥添加到GitHub上的myorg-machines帐户密钥中。我把这把钥匙命名为jenkins on server.name.com,以使事情井然有序
  5. 创建一个名为Machines - Pull only的GitHub团队。将myorg-machines GitHub用户添加到该团队中,并允许该团队访问我适当的私人转发

我同意这看起来很笨拙,但事实上,一年左右以来,它已经很容易管理了。

最新更新