首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过JSch连接到服务-预期数据包类型为30,got为34

通过JSch连接到服务-预期数据包类型为30,got为34
EN

Stack Overflow用户
提问于 2018-06-02 13:52:44
回答 1查看 334关注 0票数 1

我尝试使用JSch库(jsch-0.1.54.jar)通过SSH连接到第3层交换机,然后运行一些命令并接收响应。

它在某些交换机上运行良好,而在其他交换机上抛出错误。我正在测试的所有交换机都使用与下面类似的代码。

代码语言:javascript
复制
String host="X.X.X.X";
String user="AAA";
String password="PPP";

JSch js = new JSch();
Session session=js.getSession(user, host, 22);
session.setPassword(password);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();

我收到以下错误

代码语言:javascript
复制
com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 2 Protocol error: expected packet type 30, got 34 
    at com.jcraft.jsch.Session.read(Session.java:1004)
    at com.jcraft.jsch.Session.connect(Session.java:323)
EN

回答 1

Stack Overflow用户

发布于 2018-06-04 15:21:02

看起来像是SSH服务器中的bug。

无论如何,数据包类型34是SSH_MSG_KEX_DH_GEX_REQUEST。尝试禁用"diffie-hellman“KEXes以阻止JSch尝试它。

代码语言:javascript
复制
config.put("kex", "ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521");

如果这不起作用,请发布。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50653952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档