美文网首页
jsch连接sftp失败问题

jsch连接sftp失败问题

作者: 不爱吃饭的小孩怎么办 | 来源:发表于2020-04-08 15:31 被阅读0次

jsch是一个纯java实现的sftp工具包,因为历史版本原因,很多机器使用的Jsch包比较陈旧。但是服务端ssh服务可能升级到6.7以上,特别是7.0以上,服务端默认会关闭安全性较低的密钥协商算法,从而导致协商无法成功,sftp连接建立失败。

这就是为什么手工执行 sftp username@xxx.xxx.xxx.xxx 可以免密登录,而程序会一直失败,因为走的是两条不同的路径。

相关的报错信息可能类似:

no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

解放方案一、服务端修改sshd_config配置文件

/etc/ssh/sshd_config最后添加:
KexAlgorithms +diffie-hellman-group1-sha1

#然后重启ssh服务
# service sshd restart

解决方案二、客户端下载并升级Java密码学扩展JCE。或者JDK直接升级到1.8。
如何升级JCE,请参考 https://www.cnblogs.com/husbandmen/articles/7096120.html

解决方案三、jsch包更新到0.1.54版本以上,并且在代码中设置:

your Method {
session.setConfig("StrictHostKeyChecking", "no");// That solve the problem
 }
//如果您需要此Java版本,则此代码可在Java 1.5或更高版本中使用。

相关文章

网友评论

      本文标题:jsch连接sftp失败问题

      本文链接:https://www.haomeiwen.com/subject/tnutmhtx.html