我正在尝试使用Java中的JSch连接到我的一个EC2实例,但不断收到“UnknownHostKey”异常消息。这是(我的代码)的一部分:
import com.jcraft.jsch.*;
import java.io.*;
public class JSchTest {
private String serverIp;
public void testSshConnection() {
try {
JSch jsch = new JSch();
jsch.addIdentity("C:\\Users\\Administrator\\.ssh\\id_rsa");
Session session = jsch.getSession("ec2-user", serverIp, 22);
session.connect(30000); // <-- this is where the exception is thrown
ChannelExec channel = (ChannelExec)session.openChannel("shell");
// more code here...
channel.disconnect();
session.disconnect();
} catch (JSchException|IOException ex) {
ex.printStackTrace();
}
}
public void setServerIp(String serverIp) {
this.serverIp = serverIp;
}
}
我已经将我的公钥添加到我正在连接的EC2实例上的authorized_keys
文件中,我知道它有效,因为我可以使用PuTTY连接到它。但是,当我点击其中session.connect()
的行时,我会得到一个例外:
com.jcraft.jsch.JSchException:UnknownHostKey:10.114.2.115。 RSA密钥指纹为63:04:cf:60:4a:1d:47:35:12:0e:56:4f:5b:0a:c9:d4
我错过了什么?我怎样才能将其连接起来?
答案 0 :(得分:0)
试试这个:
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
根据this link。