gpt4 book ai didi

java - "JSchException: reject HostKey"使用 JSch 从 Java 连接到 SSH 服务器时

转载 作者:行者123 更新时间:2023-12-01 13:10:09 48 4
gpt4 key购买 nike

我尝试根据说明在我的 Java 程序中使用 SSH 在 PythonAnywhere 中建立与 MySQL 基础的连接:
https://help.pythonanywhere.com/pages/AccessingMySQLFromOutsidePythonAnywhere

不幸的是,我每次都会遇到这个错误,而且我的想法已经用完了:

com.jcraft.jsch.JSchException: reject HostKey: ssh.pythonanywhere.com


public static void main(String[] args) {
Tunnel tunnel = new Tunnel();
try {
tunnel.go();
} catch (Exception e) {
e.printStackTrace();
}
}

public void go() throws Exception {
String host = "ssh.pythonanywhere.com";
String user = "username";
String password = "password";
int port = 22;

int tunnelLocalPort = 9080;
String tunnelRemoteHost = "username.mysql.pythonanywhere-services.com";
int tunnelRemotePort = 3306;

JSch jsch= new JSch();
Session session = jsch.getSession(user,host,port);
localUserInfo lui = new localUserInfo();
session.setPassword(password);
session.setUserInfo(lui);
session.connect();
session.setPortForwardingL(tunnelLocalPort,tunnelRemoteHost,tunnelRemotePort);
System.out.println("Connecting");
}

class localUserInfo implements UserInfo {
String passwd;

@Override
public String getPassphrase() {return null; }

@Override
public String getPassword() { return null; }

@Override
public boolean promptPassword(String s) { return false; }

@Override
public boolean promptPassphrase(String s) { return false; }

@Override
public boolean promptYesNo(String s) { return false; }

@Override
public void showMessage(String s) {}
}

我使用 PuTTY 成功连接,但无法让我的程序运行。

最佳答案

JSch 无法验证 SSH 服务器主机 key 。

  • 您的主机 key 存储库包含不同的主机 key 。
  • 或者 JSch 尝试通过调用 UserInfo.promptYesNo 来提示用户手动验证主机 key 。 .随着您的实现返回 false ,主机 key 被拒绝。


  • 有关验证主机 key 的正确方法,请参阅:
    How to resolve Java UnknownHostKey, while using JSch SFTP library?

    请注意,即使在 PuTTY 中,您也必须在第一次连接时验证主机 key 。

    关于java - "JSchException: reject HostKey"使用 JSch 从 Java 连接到 SSH 服务器时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59603213/

    48 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com