Unity Jenkins打包(2) Mac git配置

目录:

  1. credentials使用kind: Username and password
  2. 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

《Unity Jenkins打包(2) Mac git配置》 kind-userName with password.png

如何验证这种方式是否有效呢?

  1. 新建 自由风格的软件项目

    《Unity Jenkins打包(2) Mac git配置》 构建自由风格的软件项目.png

  2. 只需配置源码管理这一项,注意URL要HTTPS(在github上创建一个repositories 或者使用 测试使用:github UnityJenkins工程地址),credentials选择刚刚创建的Username and password,保存。

    《Unity Jenkins打包(2) Mac git配置》 git credentials-userName and password.png

  3. 立即构建,若成功,在~/.jenkins/workspace中可以看到clone到的工程;若失败,检查账号密码。

    《Unity Jenkins打包(2) Mac git配置》 Jenkins git clone成功到workspace.png

2. kind: SSH Username private key

2.1 SSH基础

使用SSH这种方式,需要明白什么是ssh?什么是公钥?什么是私钥?什么是数字签名、数字证书?

如果都明白,可以跳过下面3个链接:

  1. 数字签名是什么?–作者阮一峰
  2. 密码学笔记 –作者阮一峰
  3. SSH原理与运用(一):远程登录 –作者阮一峰

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链接 说明的非常详细,能看懂就参照这个链接一步步做

大概分为以下几步:

  1. Checking for existing SSH keys,检查SSH keys是否已存在,如果id_dsa(私钥)、id_dsa.pub(公钥)已存在,跳过2、3步骤,若不存在则生成
  2. Generating a new SSH key and adding it to the ssh-agent,生成新的SSH key,并添加到ssh-agent。这时候按第一步检查,id_dsa(私钥)、id_dsa.pub(公钥)已存在则成功。
  3. Adding a new SSH key to your GitHub account,将生成id_dsa.pub(公钥)copy到GitHub
  4. Testing your SSH connection,验证是否配置成功:ssh -T git@github.com
  5. Jenkins配置credentials,将id_dsa(私钥)的内容copy到SSH Username private key credentials中(private key选择enter directly),Username、ID随意。

Mac 终端创建ssh key并添加到GitHub
Mac下git通过SSH进行免密码安全连接github

《Unity Jenkins打包(2) Mac git配置》 kind-ssh private key.png

2.3 git ssh正确情况截图

《Unity Jenkins打包(2) Mac git配置》 git ssh正确情况截图.png

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.

《Unity Jenkins打包(2) Mac git配置》 git ssh key设置有误报错.png

解决完code 128:Permission denied (publickey)报错,按1.1的方式验证是否能成功clone工程。
区别是URL要SSH,例如git@github.com:GeWenL/UnityJenkins.git,如“git ssh正确情况截图.png”所示。

相关文章

  1. Unity Jenkins打包(1) Mac部署
  2. Unity Jenkins打包(3) Pipeline
    原文作者:云木unity
    原文地址: https://www.jianshu.com/p/11a7e2b42329
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞