Heim >Java >javaLernprogramm >Wie behebe ich den Java-Fehler „UnknownHostException: UnknownHostKey' in JSch SFTP?

Wie behebe ich den Java-Fehler „UnknownHostException: UnknownHostKey' in JSch SFTP?

DDD
DDDOriginal
2024-12-03 16:59:11522Durchsuche

How to Resolve the Java `UnknownHostException: UnknownHostKey` Error in JSch SFTP?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn