2016-06-08 34 views
0

我一直在试图让Jenkins构建使用SSH从我的Gerrit回购协议中提取。我在Gerrit中创建了一个名为jenkinsbuild的用户,并为用户输入了公钥。Gerrit代码Reivew不接受Jenkins的ssh凭证

我正在使用Git SCM选项并使用Credentials插件。对于我的凭证,我将用户名设置为jenkinsbuild,并直接输入私钥(而不是指向密钥文件)。

我的SCM配置看起来像这样

库网址: SSH://[email protected]:29418 /测试/ testgit

证书 jenkinsbuild(詹金斯证书)

当我运行构建时,它试图从GIT仓库中获取。它轮询10分钟,然后过程超时。我看过的/ var/log /内格里特服务器上的安全和见过这样的错误:

Jun 8 11:06:25 xxxxx sshd[9887]: Invalid user jenkinsbuild from xx.xx.xxx.xxx 
Jun 8 11:06:25 xxxxx sshd[9887]: debug3: mm_answer_pwnamallow: sending MONITOR_ANS_PWNAM: 0 
Jun 8 11:06:25 xxxxx sshd[9887]: debug3: mm_request_send entering: type 8 
Jun 8 11:06:25 xxxxx sshd[9888]: input_userauth_request: invalid user jenkinsbuild 

为了调试这个问题,我登录到詹金斯服务器jenkinsbuild,并试图做一个git克隆存储库。它工作(经过一些修改)。我不知道为什么我可以直接从服务器克隆,但不能从詹金斯克隆。

有没有人有任何建议,我可以进一步调试这个问题?

+0

你看过Gerrit服务器上的gerrit/log/error_log和gerrit/log/sshd_log文件吗?任何线索? –

+0

sshd_log文件似乎只记录成功登录。当我尝试从我的版本(它失败的地方)执行它时,我没有看到任何新条目。 error_log中记录了很多错误,但唯一对应于我的请求时间的错误是“[2016-06-08 15:14:02,673]错误com.googlesource.gerrit.plugins.replication.ReplicationQueue:Can not复制到XXXXX:/opt/git/ttadd/qcegpos.git org.eclipse.jgit.errors.TransportException:XXXXX:/opt/git/ttadd/qcegpos.git:缺少未知bc751a060521b1b4e23795464a3fd398fbd09996 “ – bsayegh

+0

呃......也许詹金斯正在等待用户响应,如:无法建立主机的真实性。 RSA密钥指纹是SHA256:。你确定要继续连接吗(是/否)? –

回答

0

原来,Jenkins的GIT插件(至少是我的版本)不支持带密码的ssh密钥。似乎有点奇怪,因为它使用凭证插件,它允许您提供密码。

有很多错误打开它,包括JENKINS-20879

的解决方案是重新生成SSH密钥没有密码。

相关问题