簡體   English   中英

無法從jenkins訪問git repo

[英]Not able to access git repo from jenkins

我在Linux機器上配置了Jenkins,而我的git repo在另一台Linux服務器上。 但是,當我嘗試將回購的URL提供給Jenkins時,我收到以下錯誤。

Failed to connect to repository : Command "git -c core.askpass=true ls-remote -h ssh://user@ip/~/export1 HEAD" returned status code 128:
stdout: 
stderr: Permission denied, please try again. 
Permission denied, please try again. 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

可能是什么原因造成的?

我已經看到兩個系統的rsa密鑰都存在於彼此的.ssh/known_hosts文件夾中。
我能夠將代碼中的代碼拉出或克隆到Jenkins系統中的文件夾中。 那么詹金斯為什么不能接受呢?
我也嘗試過URL user@ip:/fullpath/to/repo

您需要確保Jenkins作為正確的用戶運行(在~/.ssh/id_rsa(.pub)具有密鑰的用戶

該用戶可能與ssh url中使用的用戶不同:user @ ip表示您使用在~user/.ssh/authorized_key具有公鑰的帳戶連接到ip。

所以Jenkins進程必須由具有私鑰和公鑰的帳戶運行,其~user/.ssh/authorized_key在git服務器端的~user/.ssh/authorized_key
並且該帳戶應該在任何ssh嘗試之前完成(僅一次) ssh-keyscan -H ip >> ~account/.ssh/known_hosts ,以便將git服務器ip記錄為已知主機。

這是一個簡單的回購是否會對URL產生任何影響或改變?

.git 。當用作URL時,裸倉庫文件夾末尾的.git是可選的。

繼@ VonC的回復之后,您還可以使用Credentials插件在Jenkins主服務器上定義一組憑據,Jenkins作業使用這些憑據來訪問您的Git存儲庫。 這允許您將Jenkins本身作為可以訪問Git倉庫的用戶運行。

主要問題是系統的安全性。 我沒有檢查我的服務器上的身份驗證機制。 對git服務器的密碼驗證導致了問題,因為jenkins機器試圖直接觸發路徑的ls-remote。 當您在終端上執行相同操作時,系統將提示您輸入密碼然后接受。 當我將密碼身份驗證和UsePAM設置為no並在sshd_config文件中啟用RSA身份驗證,pubkey身份驗證和授權密鑰設置為yes並重新啟動時,它能夠訪問repo並且我得到此錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM