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

使用jsch-0.2.17.jar连接SFTP失败:server_host_key算法协商错误

问题分析

从错误日志和报错信息来看,核心问题是主机密钥算法协商失败:

  • 服务器仅支持ssh-rsa作为主机密钥算法
  • JSch 0.2.17默认的主机密钥提案里只包含ecdsa-sha2-*、rsa-sha2-512、rsa-sha2-256,没有ssh-rsa

你之前配置的PubkeyAcceptedAlgorithms是用于公钥认证阶段的算法控制,和当前主机密钥协商无关,所以不起作用。

解决方案

在JSch的配置中添加HostKeyAlgorithms参数,将ssh-rsa加入支持的主机密钥算法列表:

// 保留原有配置
config.put("StrictHostKeyChecking", "no");
config.put("PubkeyAcceptedAlgorithms", "ssh-rsa");
// 新增主机密钥算法配置,覆盖默认提案
config.put("HostKeyAlgorithms", "ssh-rsa,rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521");

如果只需要适配当前服务器,也可以简化为:

config.put("HostKeyAlgorithms", "ssh-rsa");
原理说明

HostKeyAlgorithms参数控制JSch在SSH握手阶段向服务器发送的主机密钥算法提案列表,添加ssh-rsa后,就能和服务器提供的算法匹配,完成协商流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 12:34:53