我正在尝试为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)
我希望有人能帮助我。
发布于 2018-04-13 21:02:35
SSHJ似乎被配置为只使用diffie-hellman-group1-sha
密钥交换算法,而您的服务器支持一大堆密钥交换算法,但不支持那个算法。
如果您没有显式地这样做,最可能的原因是您没有加载BouncyCastle,或者高强度加密扩展没有加载到Java中。
https://stackoverflow.com/questions/49632978
复制相似问题