jenkins已集成git插件(如无,请自行下载)linux
Repository URL填写http的git地址,此时未选择相应的Credentials,会有图中红色提示git
HTTP协议的话,须要输入帐号密码来验证,点击Add,输入的帐号密码并保存,记得kind选择“Username with password”服务器
选后Credentials选中刚刚新增的帐号密码,红色提示消失;app
Repository URL填写ssh的git地址,此时未选择相应的Credentials,会有图中红色提示ssh
点击Add,须要添加ssh的credentials,这里须要上传的是私钥(不是公钥!!)加密
私钥文件存放在~/.ssh/id_rsa 文件中,
spa
首先能够查看jenkins的控制台输出日志,是否报错.net
或者直接去到jenkins的工做目录插件
/var/lib/jenkins/workspace/
查看代码是否clone下来3d
疑问点(公钥和私钥的理解)
为何linux上直接能够git clone成功,而用jenkins去执行不成功呢,而后jenkins为何不用公钥而要密钥呢
我的理解:ssh生成的公钥和私钥是一对的,咱们在linux上经过ssh协议获取git代码,也是先在linux生成公钥+私钥,而后把公钥上传到git服务端,而后获取代码的流程是:
a. linux把公钥上传到git服务器;
b. git服务器使用公钥加密信息(这里指代码),把信息传回给linux;
c. linux拿到信息后,经过本地的私钥解密信息,获得代码;
而公钥私钥存放在~/.ssh下,每一个用户都不同
而jenkins的执行是用jenkins用户去执行的,当git服务把信息给到jenkins的时候,jenkins在他的~/.ssh下没有对应的私钥,所以须要将私钥告诉jenkins,这就是jenkins为何须要添加私钥;