gpt4 book ai didi

java - JSchException : UnknownHostKey

转载 作者:行者123 更新时间:2023-12-02 08:07:47 29 4
gpt4 key购买 nike

我正在尝试使用 Jsch 在 Java 中建立 SSH 连接。我已将“StrictHostKeyChecking”设置为"is"。据我了解,必须事先获取服务器的主机 key 并将其存储在主机 key 文件中在第一次尝试连接到服务器之前。如何获取服务器的 HostKey。我的代码产生以下异常:

com.jcraft.jsch.JSchException:未知主机 key :ASY-PCRSA key 指纹为 22:fb:ee:fe:18:cd:aa:9a:9c:78:89:9f:b4:78:75:b4

如何与 StrictHostKeyChecking 建立连接 是的。这是我的代码。

package sshexample;

import com.jcraft.jsch.*;
import java.io.*;

public class SSHexample
{
public static void main(String[] args)
{
String user = "user";
String password = "password";
String host = "192.168.100.103";
int port=22;
try
{
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "yes");
System.out.println("Establishing Connection...");
session.connect();
System.out.println("Connection established.");
System.out.println("Crating SFTP Channel.");
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
}catch(Exception e) {
e.printStackTrace();
}
}

最佳答案

您必须通过调用以下函数来提供 KnownHostKeys 文件

jsch.setKnownHosts(new FileInputStream(knownHostsFile));

此文件应包含所有已知主机的指纹,并用新行分隔。

例如

hostname,10.1.1.120, ssh-rsa AAAAC3NzaC1yc2EAAAADAQABAAABAQCi5b647581SwC0uUDQw1ENjKSz3rhJMRRZEgIjHylvF4fbuAEzj645YoAf9SItb51MhetFAJrq98jYsHpedSm3IoMG+aR/P1CjsBz1RtJKlfR2NfYDCZ7Dyx11P8FnJbwbYif/GeG0xEujekwF1pyL0tNPmf0H4/GPR4mwrv/llGlB3Lo3BzxrGtl4f4X/oSHDoo7FrQkDwqOfeSM++3vPPHxyVO5zhFJ5u9f7M/uuxUeHS+YS5JWAI7NLXKgbiM9dluGzZU/6Awo3ux4x5ojL+kf29JEVxK+o6GfW2bIW+LhgIGZNThnN5nHzBVfNNHvQ7KC5ic0h2z2gbVpwJr1h

您可以使用任何 sftp 客户端从服务器获取此 key ,但是如果您使用的是 Linux 或 unix,以下命令可能会有所帮助

ssh-keyscan -t rsa 10.1.1.120

关于java - JSchException : UnknownHostKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19063115/

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