相关疑难解决方法(0)

com.jcraft.jsch.JSchException:UnknownHostKey

我正在尝试使用Jsch在Java中建立SSH连接.我的代码产生以下异常:

com.jcraft.jsch.JSchException: UnknownHostKey: mywebsite.com. 
RSA key fingerprint is 22:fb:ee:fe:18:cd:aa:9a:9c:78:89:9f:b4:78:75:b4
Run Code Online (Sandbox Code Playgroud)

我找不到如何在Jsch文档中验证主机密钥.我在下面提供了我的代码.

import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;

public class ssh {
    public static void main(String[] arg) {

        try {
            JSch jsch = new JSch();

            //create SSH connection
            String host = "mywebsite.com";
            String user = "username";
            String password = "123456";

            Session session = jsch.getSession(user, host, 22);
            session.setPassword(password);
            session.connect();

        } catch(Exception e) {
            System.out.println(e);
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

java ssh jsch

167
推荐指数
7
解决办法
17万
查看次数

JSch:UnknownHostKey异常,即使在known_hosts文件中存在hostkey指纹时也是如此

有关此异常的问题有两个:

我正在使用Windows机器并尝试连接到使用运行Ubuntu的Vagrant创建的VM.这是我的代码:

public static void main(String[] args) {
    String host = "localhost";
    String username = "vagrant";
    int port = 2200;
    String privateKey = "C:\\keys\\openSSH_pair1\\open_ssh_private";
    JSch js = new JSch();
    try {
        js.addIdentity(privateKey, "pass");
        js.setKnownHosts("C:\\Users\\user\\.ssh\\known_hosts");
        Session session = js.getSession(username, host, port);
        session.connect();
        System.out.println("Connected");
    } catch (JSchException e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

@Pascal建议设置strictHostKeyCheckingno,对我有用,但这不是首选的解决方案.他首选的解决方案是从命令行进行SSH,以便将主机添加到known_hosts文件中.我已经安装并执行了Git ssh -i openSSH_pair1\open_ssh_private vagrant@localhost -p 2200 并收到此输出,然后被提示输入密码并建立连接

无法建立主机'[localhost]:2200([127.0.0.1]:2200)'的真实性.ECDSA密钥指纹是11:5d:55:29:8a:77:d8:08:b4:00:9b:a3:61:93:fe:e5.您确定要继续连接(是/否)吗?是警告:永久性地将'[localhost]:2200'(ECDSA)添加到已知主机列表中.

所以现在我的known_hosts文件git_home\.ssh包含一个条目localhost:2200,我也把known_hosts文件放入user_home\.ssh.我还把我的私钥放在VM上我试图ssh并运行它来生成一个公钥并将其添加到authorized_keys …

java ssh jsch vagrant

4
推荐指数
1
解决办法
5800
查看次数

标签 统计

java ×2

jsch ×2

ssh ×2

vagrant ×1