You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Sonar-Gerrit插件遇错:执行gerrit review命令失败

解决Sonar-Gerrit插件执行时的HostKey拒绝问题

你遇到的核心问题其实是Jenkins运行进程的用户没有信任Gerrit服务器的主机密钥——虽然你手动在Jenkins服务器上执行mvn sonar:sonar成功,但那是用你当前登录的用户身份操作的,而Jenkins实际是用tomcat用户(从路径/usr/share/tomcat/.jenkins能判断出来)在运行,这个用户的SSH信任列表里并没有Gerrit服务器的主机密钥记录。

试试下面的步骤来修复:

  • 切换到Jenkins运行的用户(这里是tomcat):

    sudo su - tomcat
    
  • 手动发起一次到Gerrit服务器的SSH连接,让主机密钥自动添加到该用户的known_hosts文件:

    ssh -p 29418 jenkins@172.21.33.193
    

    首次连接会弹出类似提示:

    The authenticity of host '[172.21.33.193]:29418 ([172.21.33.193]:29418)' can't be established.
    ED25519 key fingerprint is SHA256:xxxxxx.
    Are you sure you want to continue connecting (yes/no/[fingerprint])?
    输入yes确认后退出连接即可。

  • 重新触发你的Jenkins Maven任务,这时候Sonar-Gerrit插件执行gerrit review命令时就不会再出现HostKey拒绝的错误了。

补充说明:你提到Gerrit Trigger插件连接检查成功,是因为这个插件依赖的是Jenkins全局配置里的Gerrit服务器密钥设置;而Sonar-Gerrit插件是直接调用本地SSH客户端执行操作,所以依赖的是Jenkins运行用户的SSH信任列表,这就是两者表现不一致的原因。

内容的提问来源于stack exchange,提问作者haopan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:51:49