我对Jenkins和私有Github repos有一个小问题。要查看私人回购,通常需要两件事之一:
- 该repo上用户的专用SSH密钥
- 该repo的已注册"部署密钥"的专用SSH密钥
部署密钥是为这种交互而创建的。问题是部署密钥在各个项目中必须是唯一的,所以我每次都必须使用不同的密钥。这意味着,对于每个额外的repo,我都必须为Jenkins用户的ssh代理添加另一个密钥
这也意味着,在默认情况下,代理会尝试所有可用的密钥,并且可能会在使用错误的密钥进行几次错误尝试后删除连接。
Jenkins-git插件似乎不允许将其指向SSH密钥。Jenkins在结账前不允许任何命令行交互,所以我不能使用任何bash技巧来设置正确的密钥。
到目前为止,唯一的解决方案似乎是:
- 在github中创建一个"my_jenkins_account"用户
- 向用户添加公钥
- 将我想使用Jenkins结账的账户添加到repos
- 将用户的私钥添加到jenkins用户
有其他建议吗?
这并不是一个确切的答案,只是黑暗中的回声,让你知道我做了几乎相同的事情。
- 以名为
jenkins
的用户身份运行Jenkins sudo
作为该用户并创建一个公共ssh密钥- 创建一个名为
myorg-machines
的免费GitHub帐户 - 将此
jenkins
用户的公共ssh密钥添加到GitHub上的myorg-machines
帐户密钥中。我把这把钥匙命名为jenkins on server.name.com
,以使事情井然有序 - 创建一个名为
Machines - Pull only
的GitHub团队。将myorg-machines
GitHub用户添加到该团队中,并允许该团队访问我适当的私人转发
我同意这看起来很笨拙,但事实上,一年左右以来,它已经很容易管理了。