Je reçois une exception lors de l'utilisation de SSHJ.
Voici comment je l'ai mis en œuvre: P>
Exception in thread "main" java.io.IOException: Could not load known_hosts at net.schmizz.sshj.SSHClient.loadKnownHosts(SSHClient.java:528) at SSHTEST.main(SSHTEST.java:25)
3 Réponses :
On dirait qu'il tente de lire un fichier "connus_hosts", mais ne peut pas le trouver, ni éventuellement dans un format invalide. P>
Les hôtes connus SSH enregistrent la clé publique de divers hôtes pour contrecarrer certaines attaques d'usurpation. Normalement, il réside dans ~ / .ssh / connais_hosts. Essayez de créer un fichier vide et voyez si cela répond à la bibliothèque. p>
La documentation de la bibliothèque est susceptible de résoudre les fichiers de configuration nécessaires. P>
@ user234194: Faites le fichier sur le client. Le serveur ne vérifie normalement que lorsque le client vient de (ce serait un vrai pita).
Supprimer la méthode de l'appel à LoadknownHostSs (), que comme étant erickson mentionné les chèques sous ~ / .sSH / connus_hosts par défaut (vous pouvez spécifier l'emplacement comme un argument également), et le remplacer par:
ssh.addHostKeyVerifier("public-key-fingerprint");
Utilisez le code de follage fort>
SSHJ fournit déjà un vérificateur qui accepte simplement tout ce qui est jeté, essayez d'utiliser: ssh.addhostykeyverifier (nouvelle promiscukuification ()); Il réalisera la même chose sans avoir besoin de la classe intérieure anonyme.
Ne faites pas cela. Cela acceptera aveuglément la clé SSH distante, que ce soit ou non, il est en fait de confiance. Le protocole SSH a la capacité d'empêcher les attaques inter-in-intermédiaires. Ce hack jumelle complètement cette fonctionnalité et suppose que tout est de confiance.