一尘不染

验证Github私有存储库的Jenkins CI

jenkins

我希望Jenkins从托管在Github上的私有存储库自动获取数据。但是我不知道如何完成该任务。尝试了文档,为jenkins用户生成了ssh-
key,我所看到的就是:“无法克隆存储库”。我已经检查过网址-它们是有效的。

任何线索,也许您知道一些描述此类内容的文档/博客/内容?


阅读 301

收藏
2020-07-25

共1个答案

一尘不染

也许GitHub 对您正在寻找的部署密钥提供支持?引用该页面:

什么时候应该使用部署密钥?

很简单,当您的服务器需要对单个私有存储库的访问权限。该密钥直接附加到存储库,而不是个人用户帐户。

如果这是您已经尝试过的方法,但是它不起作用,则可能需要使用所用URL的更多详细信息,密钥文件的名称和位置等来更新您的问题。


现在是技术部分:如何在Jenkins中使用SSH密钥?

例如,如果您有一个jenkinsUnix用户,则可以将您的部署密钥存储在中~/.ssh/id_rsa。当詹金斯尝试通过ssh克隆存储库时,它将尝试使用该密钥。

在某些设置中,您无法将Jenkins作为自己的用户帐户运行,也可能无法使用默认的ssh密钥位置~/.ssh/id_rsa。在这种情况下,您可以在其他位置创建密钥,例如~/.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 clone github-deploy-myproject:myuser/myproject

这也是您将 存储库URL 放入Jenkins的内容。

(请注意, 请勿ssh:// 放在前面,以使其正常工作。)

2020-07-25