Beheben des Java UnknownHostKey-Fehlers in der JSch SFTP-Bibliothek
Beim Arbeiten mit Java SFTP (unter Verwendung von JSch) stoßen Sie möglicherweise auf die Fehlermeldung „java.net .UnknownHostException: UnknownHostKey-Fehler. Dies liegt daran, dass die Überprüfung des Hostschlüssels aktiviert ist, wodurch aus Sicherheitsgründen SSH-Verbindungen zu unbekannten Hosts verhindert werden.
Lösung
Um den Fehler zu beheben, haben Sie zwei Möglichkeiten:
Option 1: Hostschlüsselprüfung deaktivieren (nicht). Empfohlen)
Wichtiger Hinweis: Dies ist keine sichere Lösung und sollte nur zu Testzwecken verwendet werden.
java.util.Properties config = new java.util.Properties(); config.put("StrictHostKeyChecking", "no"); session.setConfig(config);
Option 2: Erwarteten Hostschlüssel einrichten (dringend empfohlen)
Dieser Ansatz gewährleistet Sicherheit beim Herstellen einer Verbindung mit SSH Servern.
Verwenden von ssh-keyscan (Linux/Unix)
ssh-keyscan example.com > known_hosts
Verwenden von Windows
Besorgen Sie sich einen Windows-Build von ssh-keyscan entweder aus dem Win32-OpenSSH-Projekt oder Git für Windows, dann folgen Sie den gleichen Schritten Schritte.
Sobald Sie die Datei „known_hosts“ generiert haben, verweisen Sie in Ihrem JSch-Code darauf:
JSch jsch = new JSch(); jsch.setKnownHosts("/path/to/known_hosts");
Alternativ können Sie:
JSch.getHostKeyRepository().add(...) // Provide the expected host key manually
Durch die Verwendung dieser Methoden können Sie den UnknownHostKey-Fehler umgehen und gleichzeitig die Sicherheit Ihrer Java-SFTP-Vorgänge aufrechterhalten. Es ist jedoch wichtig zu bedenken, dass die Deaktivierung der Host-Schlüsselüberprüfung nur zu Testzwecken ratsam ist und in Produktionsumgebungen vermieden werden sollte.
Das obige ist der detaillierte Inhalt vonWie behebe ich den Java-Fehler „UnknownHostException: UnknownHostKey' in JSch SFTP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!