Ich führe ein Java-Programm, wo ich eine Datei von einem Ordner auf einen anderen übertragen, mit Java SFTP. Das Problem, das ich habe ist, dass ich den folgenden Fehler in meinem Java SFTP bekommen (mit JSch):Wie Java UnknownHostKey zu lösen, während JSch SFTP-Bibliothek verwenden?
C: \ Oracle \ Middleware \ Oracle_Home \ oracle_common \ jdk \ bin \ javaw.exe - server -classpath C: \ JDeveloper \ mywork \ Java_Hello_World.adf; C: \ JDeveloper \ mywork \ Java_Hello_World \ Client \ classes; C: \ Benutzer \ ADMIN \ Downloads \ jsch-0.1.53.jar -Djavax.net.ssl .trustStore = C: \ Benutzer \ IBM_AD ~ 1 \ AppData \ Lokal \ Temp \ trustStore5840796204189742395.jks FileTransfer com.jcraft.jsch.JSchException: UnknownHostKey: 127.0.0.1. RSA Schlüssel Fingerabdruck ist a2: 39: 3f: 44: 88: e9: 1f: d7: d1: 71: f4: 85: 98: fb: 90: dc bei com.jcraft.jsch.Session.checkHost (Sitzung. java: 797) um com.jcraft.jsch.Session.connect (Session.java:342) um com.jcraft.jsch.Session.connect (Session.java:183) um FileTransfer.main (FileTransfer.java: 33) Prozess beendet mit Exit-Code 0.
Das folgende ist mein Code so weit:
FileTransfer fileTransfer = new FileTransfer();
JSch jsch = new JSch();
try {
String host = "127.0.0.1";
int port = 22;
String user = "user";
Session session = jsch.getSession(user, host, port);
session = jsch.getSession("username", "127.0.0.1", 22);
session.connect(); // bug here , java.net.ConnectException
ChannelSftp sftp = null;
sftp = (ChannelSftp)session.openChannel("sftp") ; //channel;
//extra config code
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
// end extra config code
sftp.rename("C:\\Users\\ADMIN\\Desktop\\Work\\ConnectOne_Bancorp\\Java_Work\\SFTP_1\\house.bmp", "C:\\Users\\ADMIN\\Desktop\\Work\\ConnectOne_Bancorp\\Java_Work\\SFTP_2\\house.bmp");
session.disconnect();
} catch (JSchException e) {
e.printStackTrace();
} catch (SftpException e) {
e.printStackTrace();
} //end-catch
Mein Cygwin eingerichtet ist, und ich überprüft (mit netstat -a -b
) dass es läuft.
Wie mache ich den Schritt "richten Sie einen erwarteten Host-Schlüssel ein, damit JSch es verifizieren kann." , danke – Coffee
Ich habe ein Beispiel hinzugefügt, um die Datei 'known_hosts' zu erzeugen. –
ich versuchte mit 'ssh-keyscan example.com> known_hosts' in Cygwin (unter Windows), aber ich bin mir nicht sicher, was als nächstes zu tun hier .. ist es auf meinem Rechner heruntergeladen? Danke – Coffee