【问题标题】:Unable to reach a settlement: issue [duplicate]无法达成和解:问题[重复]
【发布时间】:2018-04-03 14:46:13
【问题描述】:

我正在尝试为 sftp 创建 jar。我使用 SSHJ (0.23.0) 并且在测试服务器上一切正常,但问题是当我尝试在生产服务器上运行它时。

我的生产服务器上的 Java 版本是 7u60。

SSHJ 日志:

net.schmizz.sshj.transport.TransportException: **Unable to reach a settlement: [diffie-hellman-group1-sha1] and [curve25519-sha256@libssh.org, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256, diffie-hellman-group14-sha1]** at net.schmizz.sshj.transport.Proposal.firstMatch(Proposal.java:165)      
        at net.schmizz.sshj.transport.Proposal.negotiate(Proposal.java:147)
at net.schmizz.sshj.transport.KeyExchanger.gotKexInit(KeyExchanger.java:239)
        at net.schmizz.sshj.transport.KeyExchanger.handle(KeyExchanger.java:364)
        at net.schmizz.sshj.transport.TransportImpl.handle(TransportImpl.java:478)
        at net.schmizz.sshj.transport.Decoder.decode(Decoder.java:127)
        at net.schmizz.sshj.transport.Decoder.received(Decoder.java:195)
        at net.schmizz.sshj.transport.Reader.run(Reader.java:72)

This is similar question, but this guy started using Jsch.

Jsch(在我的例子中是 0.1.54,Java 7u60)在测试服务器上也可以正常工作,但在生产服务器上它给了我以下例外:

Jsch 日志:

com.jcraft.jsch.JSchException: Algorithm negotiation fail
        at com.jcraft.jsch.Session.receive_kexinit(Session.java:520)
        at com.jcraft.jsch.Session.connect(Session.java:286)
        at com.jcraft.jsch.Session.connect(Session.java:150)

我希望有人可以帮助我。

【问题讨论】:

    标签: java sftp jsch sshj


    【解决方案1】:

    似乎 SSHJ 配置为仅使用 diffie-hellman-group1-sha 密钥交换算法,而您的服务器支持其中的一堆,但不是那个。

    如果您没有明确地这样做,最可能的原因是您没有加载 BouncyCastle,或者您的 Java VM 中没有加载高强度加密扩展。

    【讨论】:

      猜你喜欢
      • 2014-08-22
      • 2017-05-01
      • 2013-01-23
      • 2013-11-09
      • 2018-10-23
      • 2021-06-09
      • 2020-03-24
      • 2021-04-19
      • 2012-08-11
      相关资源
      最近更新 更多