[Update2] 因此,當我從CLI運行git時,它會提示我輸入密碼嗎?我能夠使用ssh私鑰的密碼訪問github服務器,但我從來沒有在Jenkins中提示這一點,也沒有要求提供它。 [/ Update2]EC2/AWS,Jenkins,Git,SSH
[更新] 是的。我在EC2上的一個Ubuntu實例上運行這個。我在/var/lib/jenkins/.ssh中生成了由Jenkins創建的用戶的ssh密鑰。我在Jenkins中設置了安全選項來使用Unix用戶/組。我想讓詹金斯從git(github)中拉出來。我得到以下錯誤:
hudson.plugins.git.GitException: Could not clone [my personal repo]
at hudson.plugins.git.GitAPI.clone(GitAPI.java:245)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1121)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1063)
at hudson.FilePath.act(FilePath.java:832)
at hudson.FilePath.act(FilePath.java:814)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1063)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1218)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:581)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:470)
at hudson.model.Run.run(Run.java:1434)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:239)
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin [email protected]:bobbylo/Verbify.git /var/lib/jenkins/.jenkins/jobs/build_dev/workspace" returned status code 128:
stdout: Initialized empty Git repository in /var/lib/jenkins/.jenkins/jobs/build_dev/workspace/.git/
stderr: Permission denied (publickey).
fatal: The remote end hung up unexpectedly
我已經通過Github的ssh教程。我在EC2實例上生成了一個私鑰。將它放到用戶的.ssh目錄中,jenkins。將公鑰放在Github上(同時嘗試部署密鑰+普通SSH密鑰)。我已經驗證了我可以做git over-the-wire操作(拉,克隆等),並且它可以從CLI和用戶一起工作。我已經爲用戶正確設置了unix用戶/組權限(事實上,當我更改它時,我在Jenkin的控制檯日誌中看到了錯誤日誌更改)。當我嘗試使用Jenkin git插件或執行Jenkins shell命令時,出現上述錯誤。
我讀過關於ssh-agent和ssh-add以及如何將它與您的shell啓動腳本綁定,因此您不需要爲每個命令輸入密碼 - 我不確定這是否與此處相關。
否則我不知道還有什麼我可以嘗試。任何提示將有所幫助!
而http://stackoverflow.com/questions/6515039/jenkins-git-permission-denied-publickey沒有幫助嗎? – VonC
我認爲你使用Linux?如果是這樣的話,Jenkins可能會以用戶「jenkins」的身份運行。用戶「jenkins」是否可以訪問必要的SSH密鑰(可能位於/var/lib/jenkins/.ssh)? – msandiford
我在AWS上的ubuntu盒子上。是的,我正在使用的用戶是/ var/lib/jenkins中的jenkins – tom