我希望Jenkins从托管在Github上的私有存储库自动获取数据。但是我不知道如何完成该任务。尝试了文档,为jenkins用户生成了ssh- key,我所看到的就是:“无法克隆存储库”。我已经检查过网址-它们是有效的。
任何线索,也许您知道一些描述此类内容的文档/博客/内容?
也许GitHub 对您正在寻找的部署密钥提供支持?引用该页面:
什么时候应该使用部署密钥? 很简单,当您的服务器需要对单个私有存储库的访问权限。该密钥直接附加到存储库,而不是个人用户帐户。
什么时候应该使用部署密钥?
很简单,当您的服务器需要对单个私有存储库的访问权限。该密钥直接附加到存储库,而不是个人用户帐户。
如果这是您已经尝试过的方法,但是它不起作用,则可能需要使用所用URL的更多详细信息,密钥文件的名称和位置等来更新您的问题。
现在是技术部分:如何在Jenkins中使用SSH密钥?
例如,如果您有一个jenkinsUnix用户,则可以将您的部署密钥存储在中~/.ssh/id_rsa。当詹金斯尝试通过ssh克隆存储库时,它将尝试使用该密钥。
jenkins
~/.ssh/id_rsa
在某些设置中,您无法将Jenkins作为自己的用户帐户运行,也可能无法使用默认的ssh密钥位置~/.ssh/id_rsa。在这种情况下,您可以在其他位置创建密钥,例如~/.ssh/deploy_key,并配置ssh为与以下项中的项一起使用~/.ssh/config:
~/.ssh/deploy_key
ssh
~/.ssh/config
Host github-deploy-myproject HostName github.com User git IdentityFile ~/.ssh/deploy_key IdentitiesOnly yes
因为所有您使用的所有Github存储库进行身份验证,git@github.com并且您不希望上述密钥用于所有与Github的连接,所以我们创建了一个主机别名 github-deploy-myproject 。您的克隆URL现在变为
git@github.com
git clone github-deploy-myproject:myuser/myproject
这也是您将 存储库URL 放入Jenkins的内容。
(请注意, 请勿 将 ssh:// 放在前面,以使其正常工作。)