2013-10-16 53 views
1

我有2個虛擬機(包括Ubuntu 12),SRV-ATLASSIAN(其中安裝了Stash)和SRV-CI(安裝了Jenkins)。Jenkins無法使用SSH連接到GIT,但shell運行

我想使用Git的插件詹金斯,所以我安裝了它,創建了SRV-Atlassian的一個SSH密鑰並複製私鑰(id_rsa)到/var/lib/jenkins/.ssh

我SSH-添加密鑰

,當我在

sudo su jenkins 
cd /var/lib/jenkins/.ssh 
git clone ssh://[email protected]:7999/test/test.git 

外殼上鍵入,但它很好地工作。

當我進入這個URI到詹金斯的GIT插件,我收到以下錯誤信息:

Using strategy: Default 
Fetching changes from 1 remote Git repository 
Fetching upstream changes from origin 
ERROR: Problem fetching from origin/origin - could be unavailable. Continuing anyway 
hudson.plugins.git.GitException: Command "git fetch -t origin  +refs/heads/*:refs/remotes/origin/*" returned status code 128: 
stdout: 
stderr: Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

我GOOGLE當然關於這個問題,但我不明白該怎麼做使其工作。奇怪的是,我可以從shell作爲用戶「JENKINS」進行克隆,但Jenkins本身不能。

回答

0

您需要讓Jenkins用戶訪問您的Stash回購站。在Stash中創建一個用戶,並將Jenkins用戶的SSH公鑰添加到Stash用戶。然後爲您的Stash項目或個人回購設置權限,以便Jenkins用戶可以訪問您需要的回購站。詳情請參閱the Stash docs

+0

我做到了。我創建了一個名爲「jenkins」的用戶。此用戶具有存儲庫的權限(READ)。我在存儲實例上創建了一個用戶「jenkins」,並創建一個新的ssh密鑰,將私鑰複製到jenkins實例中。再次,克隆shell的工作,再次得到相同的錯誤。 – CBergau

+0

您需要將Jenkins服務器上的Jenkins用戶的SSH公鑰添加到Stash中的Jenkins用戶。作爲管理員,請轉到https:// stash/admin/users/view?name = jenkins並單擊SSH Keys選項卡。 –

+0

我刪除了所有的密鑰,去了jenkins實例,創建了SSH密鑰,在公用密鑰上添加了公鑰給jenkins用戶。重新啓動jenkins。仍然得到相同的錯誤。 – CBergau