Open felix-cao opened 6 years ago
想一想,Jenkins从git仓库(gitHub)中去pull代码,git仓库为什么允许Jenkins这么干呢? 因此Jenkins和git仓库之间必须建立一种信任关系。本文讲的这种信任关系就是Jenkins凭证(credentials)和SSH认证(Secure Shell)。
在 Jenkins自动化部署(Github之Push) 这篇文章中 的 配置Github中Hooks & services 部分提到这部分的内容, 登录到jenkins服务器
sudo su -s /bin/bash jenkins // 务必以用户jenkins身份登录到centos中 ssh-keygen // 一路回车 cat /var/lib/jenkins/.ssh/id_rsa.pub //获取key
然后把公钥添加到gitHub 某个repo的Display keys上,这时jenkins服务器就可以拿自己的私钥与github服务进行通信。
“凭证”是我对它的理解,Jenkins对于“Credentials”一直没有汉化,由此可见官方对此也是比较犹豫的,我想也可以理解为秘钥。
在jenkins界面 Credentials -> System -> Add domain: Domain Name: 一般我都填写你git服务器的地址,如 github.xxx.com Description: 简单的描述,如 This is the Credential for github
点击 ok 后,再点击左侧的 “Add Credentials”
进入页面后. Kind: 可以选择 Username with password 或者 SSH Username with private key.(这里选择后者) Scope: Global(Jenkins, nodes, items, all child items, etc) Username: 随便起一个名字,以便在创建 Job 的时候使用该 Credential Private Key:可以指定文件,也可以使用默认的 ~/.ssh,当然也可以直接将私钥复制粘贴到此处。 Passphrase: 如果你在创建 ssh key 的时候输入了 Passphrase那就填写相应的Passphrase,为空就不填写 ID: 空 Description: 空
我们之前把公钥配置到gitHub的某个repo的Display keys上,那么Jenkins服务器只能对该repo有相应的权限,那如果我想对gitHub账号下的所有repo都有权限呢?
然后我同样把私钥配置到Jenkins的Credentials中。
想一想,Jenkins从git仓库(gitHub)中去pull代码,git仓库为什么允许Jenkins这么干呢? 因此Jenkins和git仓库之间必须建立一种信任关系。本文讲的这种信任关系就是Jenkins凭证(credentials)和SSH认证(Secure Shell)。
SSH 认证
在 Jenkins自动化部署(Github之Push) 这篇文章中 的 配置Github中Hooks & services 部分提到这部分的内容, 登录到jenkins服务器
然后把公钥添加到gitHub 某个repo的Display keys上,这时jenkins服务器就可以拿自己的私钥与github服务进行通信。
Jenkins凭证(Credentials)配置项
“凭证”是我对它的理解,Jenkins对于“Credentials”一直没有汉化,由此可见官方对此也是比较犹豫的,我想也可以理解为秘钥。
在jenkins界面 Credentials -> System -> Add domain: Domain Name: 一般我都填写你git服务器的地址,如 github.xxx.com Description: 简单的描述,如 This is the Credential for github
点击 ok 后,再点击左侧的 “Add Credentials”
进入页面后. Kind: 可以选择 Username with password 或者 SSH Username with private key.(这里选择后者) Scope: Global(Jenkins, nodes, items, all child items, etc) Username: 随便起一个名字,以便在创建 Job 的时候使用该 Credential Private Key:可以指定文件,也可以使用默认的 ~/.ssh,当然也可以直接将私钥复制粘贴到此处。 Passphrase: 如果你在创建 ssh key 的时候输入了 Passphrase那就填写相应的Passphrase,为空就不填写 ID: 空 Description: 空
github SSH & GPG keys
我们之前把公钥配置到gitHub的某个repo的Display keys上,那么Jenkins服务器只能对该repo有相应的权限,那如果我想对gitHub账号下的所有repo都有权限呢?
然后我同样把私钥配置到Jenkins的Credentials中。