目录:
- credentials使用kind: Username and password
- credentials使用kind: SSH Username private key
2.1 SSH基础;什么是ssh?什么是公钥?什么是私钥?什么是数字签名、数字证书?
2.2 配置SSH Username private key credentials的5个步骤
2.3 git ssh正确情况截图
2.4 报错情况处理:code 128:Permission denied (publickey)
git配置(GitHub)
git配置主要是设置credentials,常用的有2种方式:
1. kind: Username and password
如何验证这种方式是否有效呢?
-
新建 自由风格的软件项目
-
只需配置源码管理这一项,注意URL要HTTPS(在github上创建一个repositories 或者使用 测试使用:github UnityJenkins工程地址),credentials选择刚刚创建的Username and password,保存。
-
立即构建,若成功,在~/.jenkins/workspace中可以看到clone到的工程;若失败,检查账号密码。
2. kind: SSH Username private key
2.1 SSH基础
使用SSH这种方式,需要明白什么是ssh?什么是公钥?什么是私钥?什么是数字签名、数字证书?
如果都明白,可以跳过下面3个链接:
2.2 配置SSH Username private key credentials的5个步骤
接下来生成一个SSH Username private key credentials
如何生成:
GitHub 的 SSH 密钥指南 : https://help.github.com/articles/generating-ssh-keys。
这个GitHub官方ssh链接 说明的非常详细,能看懂就参照这个链接一步步做
大概分为以下几步:
- Checking for existing SSH keys,检查SSH keys是否已存在,如果id_dsa(私钥)、id_dsa.pub(公钥)已存在,跳过2、3步骤,若不存在则生成
- Generating a new SSH key and adding it to the ssh-agent,生成新的SSH key,并添加到ssh-agent。这时候按第一步检查,id_dsa(私钥)、id_dsa.pub(公钥)已存在则成功。
- Adding a new SSH key to your GitHub account,将生成id_dsa.pub(公钥)copy到GitHub
-
Testing your SSH connection,验证是否配置成功:
ssh -T git@github.com
- Jenkins配置credentials,将id_dsa(私钥)的内容copy到SSH Username private key credentials中(private key选择enter directly),Username、ID随意。
Mac 终端创建ssh key并添加到GitHub
Mac下git通过SSH进行免密码安全连接github
2.3 git ssh正确情况截图
2.4 报错情况处理:code 128:Permission denied (publickey)
若出现code 128:Permission denied (publickey)
的报错,说明ssh key credentials没有配置对。
按照上面5个步骤检查一遍。用第四步检查GitHub上是否配置成功,若成功,检查id_dsa(私钥)的内容copy过程有没有遗漏,private key是否正确。
构建失败日志: ERROR: Error cloning remote repo 'origin'
hudson.plugins.git.GitException: Command returned status code 128:
stdout:
stderr: Permission denied (publickey).
fatal: Could not read from remote repository.
解决完code 128:Permission denied (publickey)
报错,按1.1的方式验证是否能成功clone工程。
区别是URL要SSH,例如git@github.com:GeWenL/UnityJenkins.git
,如“git ssh正确情况截图.png”所示。