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

Gerrit Trigger连接失败:JSchAlgoNegoFailException算法协商错误求助

解决Gerrit Trigger SSH连接算法协商失败问题

问题现象

连接Gerrit时触发以下错误:

Connection error : com.jcraft.jsch.JSchAlgoNegoFailException: Algorithm negotiation fail: algorithmName="server_host_key" jschProposal="ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256" serverProposal="ssh-rsa"

环境信息

  • Gerrit Trigger版本:2.39.0
  • JSch依赖插件版本:0.2.8-65.v052c39de79b_2
  • SSH密钥通过ssh-keygen生成

解决方案

方案1:修改Gerrit服务器SSH配置(推荐)

Gerrit服务器当前仅启用了ssh-rsa作为主机密钥算法,而JSch客户端默认不将其列入协商列表,需在服务器端添加JSch支持的算法:

  1. 找到Gerrit服务器的gerrit.config配置文件(通常路径为/var/gerrit/etc/gerrit.config)
  2. 编辑[sshd]段,添加支持的主机密钥算法:
[sshd]
    hostKeyAlgorithms = ssh-rsa,ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256
  1. 重启Gerrit服务使配置生效

方案2:修改JSch客户端算法列表

若无法调整服务器配置,可手动为JSch添加ssh-rsa算法支持:

  1. 进入Jenkins系统配置页面,找到Gerrit Trigger的连接配置项
  2. 查找是否有「自定义JSch属性」的设置区域,添加以下配置:
jsch.server_host_key=ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,rsa-sha2-512,rsa-sha2-256,ssh-rsa
  1. 保存配置后重新测试连接

补充说明

新版本JSch默认禁用了ssh-rsa这类较旧的算法,如果Gerrit服务器最近升级或调整了SSH安全配置,仅保留ssh-rsa,就会触发该协商失败问题。优先推荐方案1,同时支持新旧算法,兼顾兼容性与安全性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 05:51:13