【发布时间】:2015-08-11 06:57:36
【问题描述】:
我正在尝试使用 JSch 连接到服务器。我收到“协商失败”错误。我检查了 sshd_config 文件并得到以下信息:
UsePAM yes
PasswordAuthentication no
Ciphers aes128-ctr,aes256-ctr,arcfour256,arcfour,aes128-cbc,aes256-cbc
AllowTcpForwarding no
PermitRootLogin no
其余的脚本都被注释掉了。如您所见,它没有提及有关支持的密钥交换方法的任何内容。 1.这似乎是问题吗?还是出现此错误的任何其他原因? 我很难获得批准进行更改和测试,所以我想先确定,然后再应用更改。
另外,这就是我从记录器中得到的全部信息:
INFO: Connecting to xx.xxx.xxx.xxx port 22
INFO: Connection established
INFO: Remote version string: SSH-2.0-OpenSSH_5.1
INFO: Local version string: SSH-2.0-JSCH-0.1.31
INFO: SSH_MSG_KEXINIT received
INFO: SSH_MSG_KEXINIT sent
Exception in thread "main" com.jcraft.jsch.JSchException: Algorithm negotiation fail
at com.jcraft.jsch.Session.receive_kexinit(Session.java:540)
at com.jcraft.jsch.Session.connect(Session.java:288)
at com.jcraft.jsch.Session.connect(Session.java:145)
at SSHConnection.connect(SSHConnection.java:21)
at SSHConnection.main(SSHConnection.java:25)
- 有没有其他方法可以找出服务器支持的密钥交换方法?
- 还有其他方法可以连接到此服务器吗?我需要将它集成到我的 Java 程序中。
【问题讨论】:
-
这与您的yesterday's questions 有何不同?
标签: ssh network-programming server jsch public-key-exchange