2010-09-14 76 views
8

我正在嘗試使用HudsonGerrit Trigger插件。爲Gerrit和Hudson創建SSH密鑰

無論出於何種原因,Gerrit都不接受位於/var/lib/hudson/.ssh/id_rsaSSH密鑰。

在GUI我得到Connection error : com.jcraft.jsch.JSchException: Auth fail作爲一個錯誤,當我在終端工作我得到了Permission denied (publickey)錯誤。

我該如何生成並使用工作私鑰,以便HudsonGerrit可以打好?

回答

9

的OP Josh Smith管理梳理出來:

其實我需要從/var/lib/hudson/.ssh/id_rsa.pub添加SSH關鍵用戶(我)到格里特GUI。
然後從那裏它就像一個魅力。
用戶名必須是Gerrit中的用戶名(admin帳戶)。

我原來的建議如下:


什麼是將使用基於Web的代碼審查制度格里特用戶?

該用戶需要您的/var/lib/hudson/.ssh/id_rsa.pub公共ssh密鑰在其$HOME/.ssh/authorized_keys中,如this guide所示。

alt text

密鑰分發

的RSA密鑰對的公共部分必須被複制到該將被客戶端訪問的任何服務器。要複製的公鑰信息應位於客戶端上的~/.ssh/id_rsa.pub文件中。
假設所有服務器都使用OpenSSH而不是使用不同的SSH實現,那麼必須將公鑰數據附加到服務器上的文件~/.ssh/authorized_keys

# first, upload public key from client to server 
client$ scp ~/.ssh/id_rsa.pub server.example.org: 

# next, setup the public key on server 
server$ mkdir ~/.ssh 
server$ chmod 700 ~/.ssh 
server$ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 
server$ chmod 600 ~/.ssh/authorized_keys 
server$ rm ~/id_rsa.pub 

確保新的公共密鑰數據追加到authorized_keys文件,爲多個公共密鑰可以被使用。每個公鑰輸入必須位於不同的行上。


+0

@VonC我來認爲你回答我的每一個問題!我可能有一個直接的線路......'hudson'是應該使用審查系統的用戶,我*認爲*。原諒noobness。你的意思是說,還是實際的*人*用戶,例如'joshsmith'? – 2010-09-14 20:46:00

+0

@Josh:如果「hudson」是執行到localhost Gerrit系統的ssh連接的用戶,那麼它需要將它自己的'id_rsa.pub'添加到'〜hudson/.ssh/authorized_key'中。 – VonC 2010-09-14 20:47:38

+0

@VonC'hudson'在'/ var/lib/hudson/.ssh'中有它自己的'id_rsa.pub'。你是這個意思嗎? – 2010-09-14 20:50:34