2010-09-14 77 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