java - 使用 JSch 连接到 VShell 时为 "No appropriate prime between 1024 and 1024 is available"

标签 java ssh jsch

我已经使用 JSch 编写了一个客户端(通过基于用户名密码的日志记录)。

以下是相关代码行:-

sshSession = jsch.getSession(userName, host, 22);
sshSession.setConfig("PreferredAuthentications", "password");
sshSession.setPassword(loginInfo);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
sshSession.setConfig(config);
sshSession.connect();

现在,在连接 VShell 服务器时,我收到以下错误:-

com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 11 No appropriate prime between 1024 and 1024 is available.  en
at com.jcraft.jsch.Session.read(Session.java:987)
at com.jcraft.jsch.Session.connect(Session.java:323)
at com.jcraft.jsch.Session.connect(Session.java:183)
at com.informatica.isp.autoprovision.APSSHClient.<init>(APSSHClient.java:65)
at com.informatica.isp.autoprovision.APClient.createAPComputeNode(APClient.java:84)
at com.informatica.isp.autoprovision.test.AWSMockClientTest.test(AWSMockClientTest.java:34)
at com.informatica.isp.autoprovision.test.AWSMockClientTest.main(AWSMockClientTest.java:42)

当我尝试通过 VShell 服务器连接 CLI 客户端(例如 PuTTY 或 xshell)时,它可以正常工作。 JSch 中是否有我缺少的设置?我在 VShell 或 JSch 论坛中找不到类似的内容,因此在此发布。

最佳答案

这可能是您的 JSCH 库版本的限制,可能不允许它与 1024 位素数以外的任何内容成功执行 key 交换。考虑联系 JCraft,看看他们是否有可用的版本,支持使用更大的素数进行 diffie-hellman 群交换。如果不这样做,请联系您的 VShell 管理员并询问他们是否愿意修改 VShell 4.1.1+ primes.txt 文件以包含 1024 位素数。

作为僵局的一部分research使用 1024 位及更小的素数时,diffie-hellman 组交换存在潜在漏洞。

来自 VShell 4.1.1 history file :“鉴于 SSH key 交换存在潜在漏洞,类似于 TLS Logjam 漏洞,默认情况下不再启用 diffie-hellman group1 key 交换算法,并且所有 1024 位素数已从 VShell 的 primes.txt 文件中删除。 ”

关于java - 使用 JSch 连接到 VShell 时为 "No appropriate prime between 1024 and 1024 is available",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31660971/

相关文章:

java - Android 上的 db4o 查询速度较慢

java - 保存一个整数onClick,以便以后可以在android应用中调用它

java - 如何在Java中通过executeUpdate命令使用Access的Replace()函数?

php - 更好的工具来管理 git merge 冲突 ssh 和 windows

深入 Java SSH2 库 : Trilead/Ganymed/Orion [/other?]

jenkins - 无法通过 Jenkins 连接到 AWS slave

java - JSchException : Algorithm negotiation fail

java - 仅限观察者的 jgroups 集群成员?

java - 如何使用java查找SSH RSA key 的 key 长度

git - 检索 git 存储库时出现 teamcity aes256-cbc 错误