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

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

Barbara Streisand
Barbara StreisandOriginal
2024-12-21 04:05:09457Durchsuche

How to Resolve the

UnknownHostKey-Fehler in Java SFTP mit JSch beheben

Der Fehler „UnknownHostKey“ tritt auf, wenn JSch beim Herstellen einer SFTP-Verbindung auf einen unbekannten Hostschlüssel stößt . Um dieses Problem zu beheben, müssen Sie JSch den erwarteten Hostschlüssel zur Authentifizierung bereitstellen.

StrictHostKeyChecking einstellen

Zunächst haben Sie versucht, die Hostschlüsselprüfung zu deaktivieren, indem Sie „ StrictHostKeyChecking“ auf „Nein“, bevor Sie eine Verbindung zum SFTP-Server herstellen. Dies stellt ein Sicherheitsrisiko dar und sollte nicht durchgeführt werden, es sei denn, dies ist unbedingt erforderlich.

Richtiger Ansatz: Festlegen des erwarteten Hostschlüssels

Stattdessen sollten Sie einen erwarteten Hostschlüssel einrichten JSch zur Überprüfung. Es gibt zwei Hauptmethoden, um dies zu erreichen:

Verwenden der Datei „known_hosts“

  • Generieren Sie eine „.ssh/known_hosts-like“-Datei mit „ssh-keyscan“ Befehl.
  • Legen Sie den Pfad zu dieser Datei mit „JSch.setKnownHosts()“ fest, bevor Sie das SFTP einrichten Sitzung.
ssh-keyscan example.com > known_hosts
JSch.setKnownHosts("path/to/known_hosts");

Verwenden von HostKeyRepository

  • Manuell eine Instanz von HostKey mit dem erwarteten öffentlichen Schlüssel erstellen.
  • Hinzufügen den HostKey zum HostKeyRepository mit „JSch.getHostKeyRepository().add()“.
// Create HostKey from public key
HostKey key = new HostKey("example.com", "rsa", ...);

// Add HostKey to repository
JSch.getHostKeyRepository().add(key);

Hinweis:Beide Ansätze stellen sicher, dass JSch die Authentizität des SFTP-Servers anhand des erwarteten Hostschlüssels überprüfen kann , wodurch der Fehler „UnknownHostKey“ behoben wird.

Das obige ist der detaillierte Inhalt vonWie behebe ich den „UnknownHostKey'-Fehler in Java SFTP mit JSch?. 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