JSchException: UnknownHostKey
Ich versuche, Jsch zum herstellen einer SSH-Verbindung in Java.
Ich habe "StrictHostKeyChecking" ja". Ich verstehe, dass der hostkey des Servers beschafft werden muss, bevor die hand, und speichern Sie in der hostkey-Datei
vor dem ersten Versuch eine Verbindung zum server herstellen. Wie bekomme ich den HostKey des Servers. Mein code erzeugt die folgende Ausnahme:
com.jcraft.jsch.JSchException: UnknownHostKey: ASY-PC
RSA-Schlüssel Fingerabdruck ist 22:fb:ee:fe:18:cd:aa:9a:9c:78:89:9f:b4:78:75:b4
Wie kann ich Verbindung mit StrictHostKeyChecking Yes.
Hier ist mein code.
package sshexample;
import com.jcraft.jsch.*;
import java.io.*;
public class SSHexample
{
public static void main(String[] args)
{
String user = "user";
String password = "password";
String host = "192.168.100.103";
int port=22;
try
{
JSch jsch = new JSch();
Session session = jsch.getSession(user, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "yes");
System.out.println("Establishing Connection...");
session.connect();
System.out.println("Connection established.");
System.out.println("Crating SFTP Channel.");
ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
sftpChannel.connect();
}catch(Exception e) {
e.printStackTrace();
}
}
Ich denke, es ist breit diskutiert und bereits beantwortet und mögliche Lösungen in stackoverflow.com/questions/2003419/... ?
Danke für die Antwort ..Aber Es ist keine Lösung für die Verbindung mit StrictHostKeyChecking Yes...ich will, machen Verbindung mit check-Host-key..
überprüfen Sie die Kommentare anderer als akzeptiert, es sagt Ihnen, wie Sie festlegen, bekannten hosts-Datei.
Danke für die Antwort ..Aber Es ist keine Lösung für die Verbindung mit StrictHostKeyChecking Yes...ich will, machen Verbindung mit check-Host-key..
überprüfen Sie die Kommentare anderer als akzeptiert, es sagt Ihnen, wie Sie festlegen, bekannten hosts-Datei.
InformationsquelleAutor Atul Singh Yadav | 2013-09-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Geben Sie ein KnownHostKeys-Datei durch Aufruf der folgenden Funktion
jsch.setKnownHosts(new FileInputStream(knownHostsFile));
diese Datei sollten alle bekannten hosts' - Fingerabdrücke durch neue Zeilen getrennt.
beispielsweise
diese erhalten Sie Schlüssel vom server mit beliebigen sftp-client jedoch folgende Befehl könnte helfen, wenn Sie mit linux oder unix -
InformationsquelleAutor Mubashar Ahmad
Nach ein paar Minuten des Tests ich fand eine Lösung für dieses. Wenn Sie nicht möchten, verwenden Sie die Standard -
knownHost
- Datei, erstellen Sie einfach Ihre eigenenDiese, wie die Datei Aussehen könnte:
Und alle diese Einträge werden getrennt durch neue Linien. Sie erhalten den RSA-Schlüssel, die Sie möchten, indem Sie Ihre session -:
So
session.getHostKey().getKey()
ist, was Sie anrufen möchten, um den Schlüssel zu Holen.Müssen Sie auch nennen
session.connect();
bevor Sie Fragen, für den Schlüssel und Griff es in den Fang.es ist sehr einfach, es zu bekommen. Ich habe es erwähnt in meiner Antwort unten - stackoverflow.com/questions/19063115/...
InformationsquelleAutor nothing to know
Als die meisten der Antworten schlage vor, Sie müssen wissen, in der host-Datei aber nicht ansprechen, wie Sie es bekommen. Sie müssen einfach SSH auf den host.
ZB
ssh [email protected]
wenn Sie aufgefordert werden, geben Sie Kennwort. Zum ersten mal Verbindung haben, werden Sie zum speichern der hosts ssh-Schlüssel-Fingerabdruck. Sobald Sie verbunden sind, finden Sie Ihre known_host Datei auf
Für mich auf windows-Pfad ist
C:\Users\athakur\.ssh\known_hosts
. Sie können direkt aus dieser Datei. Oder Bearbeiten Sie die Datei und wählen Eintrag aus dem Sie entsprechend Ihrem IP-Adresse, die würde Aussehen wieHinweis : der Host-Rechner SSH-fingerprint (basierend auf hosts mit dem public key, den Sie bei uns finden können
/etc/ssh/ssh_host_rsa_key.pub
) ändern kann in der SSH ist installiert in der Maschine. Oder Sie stoßen können MIM-Angriff (auch wenn es für die Prüfung sake). In solchen Fällen werden Sie zu pflücken neuen Eintrag in der gleichen Weise wie oben erwähnt.InformationsquelleAutor Aniket Thakur
Vielleicht ist es nicht mehr relevant, aber in meinem Fall, das ähnliche problem war passiert mit docker-Komponieren.yml im container, das war bauen von spring-boot-Anwendung, die 100 % gearbeitet, lokal
Lösung wurde auf anwenden hack auf ~/.ssh-Ordner.
Danach nehme ich der Band war richtig zugeordnet, zwischen docker-container " lokaler Computer, und beschrieb Ausnahme war verschwunden.
InformationsquelleAutor sandarovich