我有一個Git的bitbucket存儲庫,我想讓我的Jenkins服務器自動訪問。這隻能使用公鑰/私鑰進行驗證。所以我創建了一個密鑰對並將公鑰上傳到bitbucket。公鑰和私鑰位於運行jenkins的tomcat用戶的.ssh文件夾中的服務器上。當我以該用戶在服務器上登錄時,我能夠克隆我的項目。如何從jenkins登錄到git bitbucket存儲庫
但是我無法讓jenkins實際檢查bitbucket中的代碼。它總是說:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
嗯,我認爲這是因爲通過ssh訪問資源庫時,我需要爲我的私鑰和詹金斯提供的密碼是無法自動做到這一點。我看,這是有可能通過提供包含以下內容的.ssh文件夾內的一個配置文件,以避免beeing要求的密碼:
Host bitbucket.org
IdentityFile ~/.ssh/id_dsa
我這樣做了,但只要我提供這個文件的我不能再從bitbucket中克隆版本庫。甚至不直接從服務器獲取如上所示的相同錯誤消息。
有沒有人設法使這個設置工作?我也在這裏閱讀了下面的線程,這對我來說是沒用的:How do i set a private ssh key for hudson/jenkins to access bitbucket?,我檢查了tomcat真的在用戶tomcat6下運行,創建一個簡單地運行「whoami」的空測試項目。所以我幾乎沒有解決問題的想法。
感謝您的幫助。這真正解決了這個問題。 – ali
@ali,儘管jenkins只需要只讀訪問權限,但是除了使用ssh之外,沒有其他方法可以訪問存儲庫嗎? – jamessan
nope。 jenkins git插件沒有提供其他方法。 – ali