問題描述
在構建Jenkins項目配置源碼管理時報錯無法連接到倉庫,點擊構建后錯誤日志如下:

尋找解決方案
尋找解決方法的過程中看到這篇博文:
作者:Ejenna
鏈接:https://blog.csdn.net/ejennahuang/article/details/86087213

嘗試直接在Jenkins工作空間下對應項目目錄中直接執行報錯的git命令,是可以執行成功的,但執行過后Jenkins中的錯誤仍然沒有消除

在Stack Overflow中搜索時發現了這個問題https://stackoverflow.com/questions/21557998/jenkins-failed-to-connect-to-repository

先按照第一個高贊回答的解決方案任然沒有成功:

隨后嘗試第二個回答提供的解決方案,但我是用SSH連接到遠程服務器,不太清楚怎樣切換用戶(su jenkins沒反應),也就沒有完整嘗試完這個方案,但我參照參照另一篇博客將ssh中的id_rsa和id_rsa.pub復制到了jenkins的.ssh目錄下。
最終解決
可以看到第二個回答所提供的方案的4-6步與之前提到的第一篇博文的解決方式其實是一致的,差別在於回答中的是以jenkins用戶執行一系列命令,想到在linux系統中可以使用sudo -u
在這之后Jenkins中的報錯也就解決了
步驟應該如下:
- 現在Jenkins的Web端構建項目
- 遠程桌面連接中:cd /var/lib/jenkins/workspace/
- 進入你所構建的項目
- 以jenkins用戶克隆你的項目:sudo -u jenkins git clone git@xxxxxx.git
- 彈出確認框的話輸入yes
xjb分析
由於整個過程中間我還嘗試了一些在當時無效的解決方案,所以就無法保證最終成功是不是僅僅因為上述步驟產生的,但通過一開始在工作空間以root用戶角色克隆成功來看,導致這個問題的原因就是在用戶角色上,因此如果按照上述步驟操作的過程中如果出現問題,我能夠想到的就是jenkins用戶無法訪問公鑰(之前和同學做的一個大作業也是通過Jenkins部署運行,其中將一個工作空間外的目錄設置為存儲文件的目錄時在運行時會報錯,無法創建文件,而我之前在root目錄下以jenkins角色克隆一個私有倉庫時也報錯無法創建目錄樹,所以我懷疑jenkins在工作空間外權限是受限的),可以嘗試給jenkins賦予操作~/.ssh下的兩個文件的權限,還有將這兩個文件拷貝到jenkins_home的目錄下。如果還不行我就也不知道原因了23333
