bx2*_*bx2 133 git continuous-integration hudson github jenkins
我希望Jenkins能够从我在Github上托管的私有存储库中自动获取数据.但我不知道如何完成这项任务.试过文档,为jenkins用户生成ssh-key,所有我能看到的是:"无法克隆回购".我检查了网址 - 它们是有效的.
任何线索,也许你知道一些文档/博客/什么描述这种东西?
Mar*_*air 137
也许GitHub对部署密钥的支持是您正在寻找的?引用该页面:
我什么时候应该使用部署密钥?
很简单,当您的服务器需要拉取访问单个私人仓库时.此密钥直接附加到存储库而不是个人用户帐户.
如果这是你正在尝试的并且它不起作用,你可能想要更新你的问题,包括使用的URL的更多细节,密钥文件的名称和位置等.
现在的技术部分:如何使用Jenkins的SSH密钥?
如果你有一个jenkinsunix用户,你可以存储你的部署密钥~/.ssh/id_rsa.当Jenkins尝试通过ssh克隆repo时,它会尝试使用该密钥.
在某些设置中,您无法将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
Run Code Online (Sandbox Code Playgroud)
因为您使用所有Github存储库进行身份验证,git@github.com并且您不希望将上述密钥用于与Github的所有连接,所以我们创建了一个主机别名github-deploy-myproject.您的克隆URL现在变为
git clone github-deploy-myproject:myuser/myproject
Run Code Online (Sandbox Code Playgroud)
这也是你作为存储库URL放入Jenkins的内容.
(请注意,为了使其正常工作,您不能将ssh://放在前面.)
Ser*_*vyi 13
如果您需要Jenkins访问超过1个项目,您需要:
1.将公钥添加到一个github用户帐户
2.将此用户添加为所有者(以访问所有项目)或作为每个项目中的协作者.
一个系统用户的许多公钥将无法工作,因为GitHub将找到第一个匹配的部署密钥,并将发回错误,如"ERROR:对用户/ repo2拒绝用户/ repo2的权限"
http://help.github.com/ssh-issues/
Jenkins在系统上创建一个用户Jenkins。ssh密钥必须为Jenkins用户生成。步骤如下:
sudo su jenkins -s /bin/bash
cd ~
mkdir .ssh // may already exist
cd .ssh
ssh-keygen
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用SSH密钥在Jenkins仪表板上添加Jenkins凭据。
选择这个选项
私钥:来自Jenkins主服务器〜/ .ssh
| 归档时间: |
|
| 查看次数: |
110738 次 |
| 最近记录: |