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本身不能。
我做到了。我創建了一個名爲「jenkins」的用戶。此用戶具有存儲庫的權限(READ)。我在存儲實例上創建了一個用戶「jenkins」,並創建一個新的ssh密鑰,將私鑰複製到jenkins實例中。再次,克隆shell的工作,再次得到相同的錯誤。 – CBergau
您需要將Jenkins服務器上的Jenkins用戶的SSH公鑰添加到Stash中的Jenkins用戶。作爲管理員,請轉到https:// stash/admin/users/view?name = jenkins並單擊SSH Keys選項卡。 –
我刪除了所有的密鑰,去了jenkins實例,創建了SSH密鑰,在公用密鑰上添加了公鑰給jenkins用戶。重新啓動jenkins。仍然得到相同的錯誤。 – CBergau