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!