jenkins配置git报错returned status code 128

jenkins docker版拉取git代码方法

一、首先,有两种协议方式,一种是http使用用户名密码,不推荐,另一种是使用ssh协议,免密方式,推荐。

 

二、在jenkins上生成公钥:

1、进入容器

docker exec -it rongqiname /bin/bash

2、执行:

ssh-keygen -t rsa

一路回车直到结束就ok

3、复制公钥,公钥是pub哦,私钥是。。。不带pub的

cat ~/.ssh/rsa.pub 这个是公钥文件,,,但是docker中的jenkins貌似不在这里,这个是人家root的,记住,~代表root哦

这时候,你whoami一下,linux系统是jenkins用户,so,继续下面命令:

cat /var/jenkins_home/.ssh/id_rsa.pub

然后复制内容,注意要一字不漏。

4、把复制好的公钥内容,拷贝到git里,但是,git也不一定好配置,请看:

这里以gitee为例,因为朋友用的这个,但是都是大同小异哦,不懂的v我:marinechat。

首先登陆gitee,然后 https://gitee.com/profile

找到左侧ssh公钥配置

然后点击进去,标题不用填,会自动补充的,直接黏贴刚才复制好的公钥:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCctTg+b8ur3UJcTC3zb+8vNSYr/WO2OJ3dHFYFLHzJwOSPKjgPcmIMoREhmlKPbY2Rdow7sgnJf1lJNFisi9AzQdG8Trb7bwXLwaVk0uXzN65S2NSaUi9y9MrjwfUhEVNivNlsWkF9UJ/iM7tfG4inYAnTJ9LZrnsLEJ7iHubwREdjPmNrBUycIxq6IfweTzK+e14ex2zwELKa9GysBPBNKTXWjrieuOU8XgaJaOIWobxYF+BUGGS3YUXuW8OdArC4CsllRHbAWZXxFgdCbjMgk4IVngo/FeKvjntSA2nz+eHxQe25NUhCy7PswXS5NgayItoymYwwztchZXQGGbsEH jenkins@bedd012s83b9

类似上面的格式,然后保存就可以了。

现在,jenkins应该有权限可以拉取git的代码了。

这里我说说实现原理,当然了,我也不知道真正的原理,大概是这样:

在git里配置jenkins的公钥,意思大概是git里保存jenkins所在linux的一个密码文件,相当于一个凭证,每当jenkins去请求拉取代码的时候就会验证jenkins有没有在git这里登记过公钥,如果登记过并且正确,ok,通过。

好了,接下来在jenkins里配置任务:

在git那一栏这样:

然后就不会提示这个讨人厌的错误了:

三、原则上,上面步骤就可以了,但是还是不合理,继续补充下面步骤

首先,去掉上面的repository url的值里的ssh:// 直接git开头就好。。。

把jenkins所在linux里(如果是容器,就是容器里)也就是刚才公钥目录下的私钥文件的内容复制一下,黏贴到jenkins页面里:

具体步骤,新建jenkins任务的时候配置git的时候,credentials点击Add,弹出窗口:

类型是ssh

username是git

private key选择 enter directly单选按钮

然后黏贴刚才复制的私钥内容。最后点击添加按钮。

试试吧,有问题在说吧。。。

 

 

posted @ 2022-04-08 18:01  oceanyang  阅读(1136)  评论(0编辑  收藏  举报