【问题标题】:Connecting to a service through JSch - expected packet type 30, got 34通过 JSch 连接到服务 - 预期数据包类型 30,得到 34
【发布时间】:2018-11-12 05:12:43
【问题描述】:

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

它在某些开关上工作正常,而在其他开关上它会引发错误。 我正在测试的所有开关都使用与下面类似的代码。

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();

我收到以下错误

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)

【问题讨论】:

    标签: java ssh jsch


    【解决方案1】:

    看起来像是 SSH 服务器中的一个错误。

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

    config.put("kex", "ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521");
    

    如果这没有帮助,请发帖 JSch log file

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-17
      • 1970-01-01
      • 2018-07-20
      • 1970-01-01
      • 2018-03-28
      • 2018-01-11
      相关资源
      最近更新 更多