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單選按鈕

然后黏貼剛才復制的私鑰內容。最后點擊添加按鈕。

試試吧,有問題在說吧。。。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM