无法达成和解:问题

时间:2018-04-03 14:46:14

标签: java sftp jsch sshj

我试图为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 log:

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)

我希望有人可以帮助我。

1 个答案:

答案 0 :(得分:0)

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

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