Maison >Java >javaDidacticiel >Comment résoudre l'erreur Java « UnknownHostException : UnknownHostKey » dans JSch SFTP ?

Comment résoudre l'erreur Java « UnknownHostException : UnknownHostKey » dans JSch SFTP ?

DDD
DDDoriginal
2024-12-03 16:59:11485parcourir

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

Résolution de l'erreur Java UnknownHostKey dans la bibliothèque JSch SFTP

Lorsque vous travaillez avec Java SFTP (à l'aide de JSch), vous pouvez rencontrer le message 'java.net .UnknownHostException : erreur UnknownHostKey. Cela se produit en raison de l'activation de la vérification des clés d'hôte, qui empêche les connexions SSH à des hôtes inconnus pour des raisons de sécurité.

Solution

Pour résoudre l'erreur, vous avez deux options :

Option 1 : Désactiver la vérification de la clé de l'hôte (pas Recommandé)

Rappel important : Ce n'est pas une solution sécurisée et ne doit être utilisée qu'à des fins de test.

java.util.Properties config = new java.util.Properties(); 
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);

Option 2 : Configurer la clé d'hôte attendue (fortement recommandée)

Cette approche garantit la sécurité lors de la connexion à SSH serveurs.

Utilisation de ssh-keyscan (Linux/Unix)

ssh-keyscan example.com > known_hosts

Utilisation de Windows

Obtenir une version Windows de ssh-keyscan à partir du projet Win32-OpenSSH ou de Git pour Windows, puis suivez la même étapes.

Une fois que vous avez généré le fichier known_hosts, référencez-le dans votre code JSch :

JSch jsch = new JSch();
jsch.setKnownHosts("/path/to/known_hosts");

Alternativement, vous pouvez :

JSch.getHostKeyRepository().add(...) // Provide the expected host key manually

En utilisant ces méthodes, vous pouvez contourner l'erreur UnknownHostKey tout en maintenant la sécurité de vos opérations Java SFTP. Cependant, il est essentiel de se rappeler que la désactivation de la vérification des clés d'hôte n'est conseillée qu'à des fins de test et doit être évitée dans les environnements de production.

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:
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