Ich kann über SSH eine Verbindung zu einem anderen Ubuntu-Rechner in meinem LAN herstellen. Auf beiden PCs habe ich openssh-server installiert, aber von einem anderen Ubuntu-Computer aus kann ich über SSH keine Verbindung zu meinem PC herstellen, und ich habe den folgenden Fehler erhalten:
Überprüfung des Hostschlüssels fehlgeschlagen ...
ssh
von der Kommandozeile passieren .Antworten:
"Überprüfung des Hostschlüssels fehlgeschlagen" bedeutet, dass der Hostschlüssel des Remote-Hosts geändert wurde.
SSH speichert die Host-Schlüssel der Remote-Hosts in
~/.ssh/known_hosts
. Sie können diese Textdatei entweder manuell bearbeiten und den alten Schlüssel entfernen (Sie können die Zeilennummer in der Fehlermeldung sehen) oder verwendenAus der Manpage :
(was ich aus der Antwort auf " Ist es möglich, einen bestimmten Hostschlüssel aus der Datei" known_hosts "von SSH zu entfernen? )
quelle
rm ~/.ssh/*
dannssh -o BatchMode=yes root@somewhere
, wenn nichts anderes falsch ist, werde ichHost key verification failed.
nicht wichtig, wenn Sie immer interaktiv sind, aber relevant für Skripte, bei denen der gleiche Fehler auftritt.ssh-keygen -R example.net:7999
ergibtHost example.net:7999 not found in known_hosts
.known_hosts
Datei und ssh wieder entfernt. Es funktionierte.~/.ssh/known_hosts
ist nicht lesbarWenn Sie in bestimmten Remote- / Skriptsituationen keinen interaktiven Zugriff auf den Prompt-to-Add-Hostkey haben, können Sie dies folgendermaßen umgehen:
Warnung: 'something.example.com, 10.11.12.13' (RSA) wurde dauerhaft zur Liste der bekannten Hosts hinzugefügt.
quelle
sh """ssh -o StrictHostKeyChecking=No ec2-user@someIpAddress-e2e sudo service tomcat restart"""
Manchmal gibt es auch Situationen, in denen Sie an der seriellen Konsole arbeiten. Wenn Sie den obigen Befehl im ausführlichen Modus überprüfen,
-v
wird angezeigt,/dev/tty
dass er nicht vorhanden ist.In obigem Fall einfach entfernen
/dev/tty
und einen Symlink von/dev/ttyS0
zu erstellen/dev/tty
.Fügen Sie alternativ
id_rsa.pub
den Remote-Standort hinzu, damit kein Kennwort abgefragt wird und Sie einen Anmeldezugriff erhalten.quelle
In meinem Fall wurde dies durch ein udev-Problem verursacht - es gab keinen
/dev/tty
Geräteknoten. Die Lösung für mich war nur:quelle
Am Terminal:
Die folgende oder eine ähnliche Meldung wird angezeigt:
Stellen Sie dann wie gewohnt eine Verbindung zu Ihrem EC2 her:
quelle
command-line line 0: Bad yes/no/ask argument.
weil Sie falsch 'Nein' anstelle von 'Nein' als Argument zu verwendenStrictHostKeyChecking
Nun, einfach, weil das zweite Ubuntu die Verbindung über einen Schlüssel und nicht über ein Passwort erfordert.
Ich schlage vor, Sie verwenden
sudo dpkg-reconfigure openssh-server
auf Ihrem PC, und dann sollte es richtig funktionieren. Es wird die Konfiguration für openssh zurückgesetzt und sollte zu einer Standard-Passwortauthentifizierung zurückkehren.Die zweite Möglichkeit ist, dass sich auf Ihrem PC bereits ein Schlüssel für Ihr anderes Ubuntu befindet und dieser sich geändert hat und daher nicht mehr erkannt wird. In diesem Fall müssen Sie die Datei bearbeiten
.ssh/authorized_keys
, um die problematische Zeile zur Identifizierung Ihres Ubuntu zu entfernen.quelle
Dies ist ein alter Thread und ich bin gerade auf diese Antwort gestoßen. Ich werde nur hinzufügen, was ich getan habe, um dies zu lösen.
Ich habe mir nur die Fehlermeldung angesehen, die es mir zuwarf, und es wurde gesagt, dass dieser Befehl ausgeführt werden soll, um ihn aus der Liste der Hosts zu entfernen. Danach habe ich folgendes gemacht:
Dann folgte ich den Anweisungen von dort, bis ich in der Lage war, in den Server zu sshen.
quelle
Dies bedeutet, dass Ihr Remote-Host-Schlüssel geändert wurde (möglicherweise Änderung des Host-Passworts).
Ihr Terminal hat vorgeschlagen, diesen Befehl als Root-Benutzer auszuführen
Sie müssen diesen Hostnamen aus der Hostliste auf Ihrem PC / Server entfernen. Kopieren Sie den vorgeschlagenen Befehl und führen Sie ihn als Root aus.
Hoffe das klappt.
quelle
Sie sollten Ihren Schlüssel folgendermaßen ändern: Suchen Sie anhand des angegebenen Fehlers, welcher Host-Schlüssel geändert wurde. Beispiel: Beleidigender ECDSA-Schlüssel in /Users/user-name/.ssh/known_hosts:5. Der fünfte Schlüssel hat sich geändert.
Hinweis: Sie müssen als root angemeldet sein oder über die Berechtigung für sudo verfügen.
quelle
Sie müssen den RSA-Schlüssel des Zielhosts in den Quellhost einfügen,
/home/user/.ssh/known_hosts
indem Sie diesen auf dem Ziel ausführenquelle
Möglicherweise müssen Sie nur "yes" eingeben, wenn ssh bestätigt, dass Sie die Verbindung fortsetzen möchten.
Wie unten.
Dann geben Sie Ihr Passwort ein.
Bitte beachten Sie "Sind Sie sicher, dass Sie die Verbindung fortsetzen möchten (Ja / Nein)? Ja ". Sie müssen Ja eingeben, nicht eingeben.
quelle
Abgesehen von der strikten Deaktivierung der Hostschlüsselprüfung können Sie die Verbindung auch herstellen, indem Sie Folgendes eingeben:
quelle
pico ~/.ssh/known_hosts
und löschen Sie alle Zeilen, nachdem Sie die Verbindung wiederhergestellt haben, und Sie erhalten einen neuen Schlüssel.quelle
ssh-keygen -R hostname
ist besser.Meine Lösung stammt aus diesem Blogbeitrag: Die Algorithmusaushandlung ist für den SSH Secure Shell-Client fehlgeschlagen
Sie müssen die Datei wie folgt ändern:
Fügen Sie dann Folgendes hinzu:
Grundsätzlich haben Sie verschiedene Lösungen ausprobiert, bis Sie eine gefunden haben, die Ihr Problem lösen kann. Wenn die oben genannten Lösungen nicht funktionieren, versuchen Sie es bitte mit dieser. Wenn dies nicht so gut funktioniert, versuchen Sie es mit anderen.
quelle
Machen Sie einfach "sudo vi /var/root/.ssh/known_hosts" und entfernen Sie die Zeile, die einen Schlüssel für einen Host enthält, zu dem Sie eine Verbindung herstellen möchten, und stellen Sie die Verbindung erneut her.
Ich weiß nichts über Ihre besondere Situation, aber wahrscheinlich kam dieser Fehler mit einer Meldung wie der folgenden:
Wenn Sie das Protokoll genauer lesen, werden Sie feststellen, dass der Schlüssel, den Sie von einem Host erhalten haben, mit einem bereits vorhandenen Schlüssel in Konflikt steht. In diesem Fall befindet er sich in Zeile 74 der Datei known_hosts (Beleidigender ECDSA-Schlüssel in / var /). root / .ssh / known_hosts: 74). Entfernen Sie die Leitung von known_hosts, speichern Sie die Änderungen und stellen Sie die Verbindung wieder her.
quelle
ist noch eine andere tty-Lösung - manchmal hat diese Gerätedatei falsche Berechtigungen.
quelle