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

SVNKit Trilead SSH报错:无法协商提案不匹配,Eclipse无法通过SSH连接SVN

Eclipse SVN SSH连接故障解决方案

问题说明

近期出于安全考虑调整了SVN服务器的sshd_config配置文件后,Eclipse无法通过SSH连接SVN。原因是SVNKit依赖的Trilead库支持的全部密钥交换算法和消息认证码算法都已从服务器sshd_config的可选配置中移除,且无法回退配置。
手动修改Trilead库的尝试未成功,该库相关类注释极少,逻辑难以梳理,报错堆栈如下:

Caused by: java.io.IOException: Key exchange was not finished, connection is closed.
at com.trilead.ssh2.transport.KexManager.getOrWaitForConnectionInfo(KexManager.java:92)
at com.trilead.ssh2.transport.TransportManager.getConnectionInfo(TransportManager.java:231)
at com.trilead.ssh2.Connection.connect(Connection.java:769)
... 40 more
Caused by: java.io.IOException: Cannot negotiate, proposals do not match.
at com.trilead.ssh2.transport.KexManager.handleMessage(KexManager.java:413)
at com.trilead.ssh2.transport.TransportManager.receiveLoop(TransportManager.java:765)
at com.trilead.ssh2.transport.TransportManager$1.run(TransportManager.java:480)
at java.base/java.lang.Thread.run(Thread.java:834)

可行解决办法

  • 更换Eclipse SVN连接器:放弃默认的SVNKit连接器,改用Native JavaHL连接器。JavaHL直接调用本地安装的SVN客户端的SSH能力,不受Trilead库支持的加密算法限制,只需本地SVN客户端版本适配服务器加密规则即可。配置路径:Eclipse → 偏好设置 → Team → SVN → SVN接口,选择对应JavaHL版本即可。
  • 本地搭建SSH隧道:本地启动SSH隧道映射服务器SVN端口,将原svn+ssh://形式的仓库地址改为svn://localhost:映射端口/仓库路径访问,本地SSH客户端支持服务器配置的加密算法即可完成握手,无需调整Eclipse SVN插件配置。
  • 升级SVNKit版本:如果当前使用的是1.9.x及以下版本的SVNKit,可尝试升级到1.10.x及以上版本,高版本SVNKit已适配更多新的密钥交换和MAC算法,部分场景下可直接兼容服务器的加密配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:09:03