美文网首页
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