2012-05-11 48 views
4

我想知道如何更改用戶在我的Ubuntu上啓動jenkins服務器。更改用戶運行Jenkins進程

http://[server]:8080/systemInfo頁我可以找到環境變量: USER詹金斯

我的動機是設置爲用戶的git'的週轉詹金斯的失敗克隆用戶「混帳」託管的Git項目在同一臺計算機上:

hudson.plugins.git.GitException: 
Command "git clone --progress -o origin ssh://[email protected][server]:22/~/[repo].git /var/lib/jenkins/workspace/[project]" returned status code 128: 
stdout: Cloning into /var/lib/jenkins/workspace/[project]... 
stderr: Permission denied, please try again. 
Permission denied, please try again. 
Permission denied (publickey,password) 

...生成SSH密鑰對詹金斯用戶和詹金斯的SSH設置驗證準確的設置後。

感謝您的幫助!

+0

您談到了驗證Jenkins中的設置。但是你是否證實瞭如果你對'jenkins'用戶'su',你可以在沒有密碼的情況下'ssh git @ [server]'? – mpontillo

+0

從控制檯運行與jenkins相同的git命令需要密碼並且可以工作。在jenkins設置中定義此密碼時,它將如上所述失敗。 – Martin

+0

如果需要密碼,那麼密鑰對設置不正確。試試'chmod 700〜jenkins/.ssh;在詹金斯服務器上的chmod 600〜jenkins/id_rsa'。 – mpontillo

回答

3

我不認爲改變詹金斯運行的用戶是解決方案。

您應該以Jenkins用戶身份(或sudo su - jenkins)登錄到您的Ubuntu機箱,然後驗證ssh [email protected][your-git-server]是否正常工作。很可能,SSH密鑰丟失或與SSH密鑰相關的文件或目錄之一存在權限問題。

無論是那個還是git命令行工具都不能識別在Jenkins中配置的SSH密鑰。我知道他們工作時,我有一個jenkins用戶有效~jenkins/.ssh/id_rsa~jenkins/.ssh/known_hosts有效輸入。

+0

當給jenkins @ [server]打電話時:〜/ .ssh $ ls我得到了 id_rsa \t id_rsa.pub known_hosts – Martin

+0

另外,下面的命令打印了什麼:'openssl rsa -inform pem -in〜jenkins/.ssh/id_rsa_test - 檢查「沒有」? (它是否要求輸入密碼?因爲如果是這樣,您可能需要考慮使用未加密的RSA密鑰,除非您想要每次使用'ssh-agent'手動啓動Jenkins服務器。) – mpontillo

+0

糾錯: 'openssl rsa -inform pem -in〜jenkins/.ssh/id_rsa -check -noout'。 (必須以root身份或以'jenkins'用戶身份執行此操作) – mpontillo