11
votes

"Impossible de charger l'exception connu_hosts" à l'aide de SSHJ

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)


0 commentaires

3 Réponses :


3
votes

On dirait qu'il tente de lire un fichier "connus_hosts", mais ne peut pas le trouver, ni éventuellement dans un format invalide.

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.

La documentation de la bibliothèque est susceptible de résoudre les fichiers de configuration nécessaires.


1 commentaires

@ user234194: Faites le fichier sur le client. Le serveur ne vérifie normalement que lorsque le client vient de (ce serait un vrai pita).



7
votes

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");


0 commentaires

15
votes

Utilisez le code de follage xxx


2 commentaires

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.