Maison > Java > javaDidacticiel > Comment résoudre l'erreur « UnknownHostKey » dans Java SFTP à l'aide de JSch ?

Comment résoudre l'erreur « UnknownHostKey » dans Java SFTP à l'aide de JSch ?

Barbara Streisand
Libérer: 2024-12-21 04:05:09
original
529 Les gens l'ont consulté

How to Resolve the

Résolution de l'erreur UnknownHostKey dans Java SFTP à l'aide de JSch

L'erreur "UnknownHostKey" se produit lorsque JSch rencontre une clé d'hôte inconnue lors de l'établissement d'une connexion SFTP . Pour résoudre ce problème, vous devez fournir à JSch la clé d'hôte attendue pour l'authentification.

Définition de StrictHostKeyChecking

Au départ, vous avez tenté de désactiver la vérification de la clé d'hôte en définissant " StrictHostKeyChecking" sur "no" avant de vous connecter au serveur SFTP. Il s'agit d'un risque de sécurité et ne doit pas être effectué sauf en cas d'absolue nécessité.

Approche appropriée : définition de la clé d'hôte attendue

Au lieu de cela, vous devez configurer une clé d'hôte attendue pour JSch pour vérifier. Il existe deux méthodes principales pour y parvenir :

Utilisation du fichier known_hosts

  • Générer un fichier ".ssh/known_hosts-like" à l'aide de "ssh-keyscan" commande.
  • Définissez le chemin d'accès à ce fichier à l'aide de "JSch.setKnownHosts()" avant d'établir le Session SFTP.
ssh-keyscan example.com > known_hosts
JSch.setKnownHosts("path/to/known_hosts");
Copier après la connexion

Utilisation de HostKeyRepository

  • Créez manuellement une instance de HostKey à l'aide de la clé publique attendue.
  • Ajoutez la HostKey au HostKeyRepository en utilisant "JSch.getHostKeyRepository().add()".
// Create HostKey from public key
HostKey key = new HostKey("example.com", "rsa", ...);

// Add HostKey to repository
JSch.getHostKeyRepository().add(key);
Copier après la connexion

Remarque : Les deux approches garantissent que JSch peut vérifier l'authenticité du serveur SFTP à l'aide de la clé d'hôte attendue , résolvant ainsi l'erreur "UnknownHostKey".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal