Ich habe meinen Server neu installiert und erhalte folgende Meldungen:
[user@hostname ~]$ ssh root@pong
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
6e:45:f9:a8:af:38:3d:a1:a5:c7:76:1d:02:f8:77:00.
Please contact your system administrator.
Add correct host key in /home/hostname /.ssh/known_hosts to get rid of this message.
Offending RSA key in /var/lib/sss/pubconf/known_hosts:4
RSA host key for pong has changed and you have requested strict checking.
Host key verification failed.
Ich habe verschiedene Lösungen ausprobiert, die ich im Internet gefunden habe. Meine known_hosts
Datei (normalerweise in ~/.ssh/known_hosts
) ist in /var/lib/sss/pubconf/known_hosts
. Ich habe versucht, es zu bearbeiten, aber es bleibt in einem Zustand. Ich habe ipa-client installiert und habe Fedora 19. Wie löse ich diese Warnung?
Alle bisher beantworteten Antworten funktionieren nur, wenn Sie Freeipa nicht installiert haben.
Die richtige Antwort für freeipa in den Kommentaren unten von adrin ist hier .
ssh
verification
ipa
man-in-the-middle
Filip Dobrovolný
quelle
quelle
Antworten:
Hier ist die einfachste Lösung
Zum Beispiel,
Von der
ssh-keygen
Manpage :-R hostname
Entfernt alle zum Hostnamen gehörenden Schlüssel aus einer Datei "unknown_hosts". Diese Option ist nützlich, um Hash-Hosts zu löschen (siehe die Option -H oben).quelle
ssh-keygen -R [127.0.0.1]:3022
. Überprüfen Sie einfach Ihre .ssh / unknown_hosts-Datei auf explizite Angaben.Verwenden
Beispiel mit einer IP-Adresse / einem Hostnamen wäre:
Dadurch wird die Beleidigung Ihres Hosts von den bekannten Hosts aktualisiert. Sie können den Pfad der bekannten_Hosts auch mit dem Flag -f versehen.
quelle
$ ssh-keygen -R {server.name.com}
|$ ssh-keygen -R {ssh.server.ip.address}
|$ ssh-keygen -R server.example.com
Ich hatte den gleichen Fehler, nachdem ich ein Digital Ocean Ubuntu-Image neu erstellt hatte. Ich habe den folgenden Befehl mit meiner Server-IP anstelle von verwendet
[IP_ADDRESS]
quelle
Wenn Sie den Server neu installieren, ändert sich seine Identität und Sie erhalten diese Meldung. Ssh kann nicht wissen, ob Sie den Server geändert haben, mit dem es verbunden ist, oder ob Ihrem Netzwerk ein Server in der Mitte hinzugefügt wurde, um Ihre gesamte Kommunikation zu überwachen. Dies macht Sie darauf aufmerksam.
Entfernen Sie einfach den Schlüssel aus bekannten_Hosts, indem Sie den entsprechenden Eintrag löschen:
Das
4d
ist auf Rechnung vonOffending RSA ...known_hosts:4
quelle
sed -i -e 4d /var/lib/sss/pubconf/known_hosts
identification
den Fall, dass Sie den Server neu erstellen möchten, ohne Störungen wie diese Fehlermeldung zu verursachen?Der Vorschlaghammer soll jeden bekannten Wirt auf einen Schlag entfernen:
Ich stoße darauf, da wir kleine Subnetze kurzlebiger Server aus einer Sprungbox verwenden und häufig interne IP-Adressen von Servern wiederverwenden, die denselben SSH-Schlüssel verwenden.
quelle
known_hosts
verhindert werden soll). Tun Sie dies nur, wenn Sie sicher sind, dass alle Hosts dort sicher sind.Das Problem ist, dass Sie zuvor eine SSH-Verbindung zu einem Remotecomputer akzeptiert haben und sich der digitale Fingerabdruck oder der SHA256-Hash-Schlüssel des Remotecomputers seit Ihrer letzten Verbindung geändert hat. Wenn Sie also erneut versuchen, SSH zu verwenden, oder Github verwenden, um Code abzurufen, der auch SSH verwendet, wird eine Fehlermeldung angezeigt. Warum? Weil Sie dieselbe Remotecomputeradresse wie zuvor verwenden, der Remotecomputer jedoch mit einem anderen Fingerabdruck reagiert. Daher ist es möglich, dass jemand den Computer fälscht, mit dem Sie zuvor verbunden waren. Dies ist ein Sicherheitsproblem.
Wenn Sie zu 100% sicher sind, dass der Remotecomputer nicht kompromittiert, gehackt, gefälscht usw. wird, müssen Sie lediglich den Eintrag in Ihrer Datei "unknown_hosts" für den Remotecomputer löschen. Dadurch wird das Problem behoben, da beim Herstellen der Verbindung keine Nichtübereinstimmung mit den SHA256-Fingerabdruck-IDs mehr besteht.
Auf dem Mac habe ich Folgendes getan:
1) Suchen Sie die Ausgabezeile, die lautet.
RSA host key for servername:port has changed and you have requested strict checking.
Sie benötigen sowohl den Servernamen als auch den potenziellen Port dieser Protokollausgabe.2) Sichern Sie die bekannte SSH-Hosts-Datei
cp /Users/yourmacusername/.ssh/known_hosts /Users/yourmacusername/.ssh/known_hosts.bak
3) Suchen Sie die Zeile, in der der alte Fingerabdruck des Computers gespeichert ist, und löschen Sie ihn. Sie können anhand des Servernamens und des Ports aus Schritt 1 nach dem spezifischen Fingerabdruck des betreffenden Remotecomputers suchen.
nano /Users/yourmacusername/.ssh/known_hosts
4) STRG-X zum Beenden und Y zum Speichern von Änderungen auswählen
Geben
ssh -p port servername
Sie nun ein und Sie erhalten die ursprüngliche Eingabeaufforderung, die Sie beim ersten Versuch, SSH auf diesen Computer zu senden, ausgeführt haben. Sie haben dann die Möglichkeit, den aktualisierten SHA256-Fingerabdruck des Remotecomputers in Ihrer Datei "unknown_hosts" zu speichern. Wenn Sie SSH über Port 22 verwenden, ist das Argument -p nicht erforderlich.Bei Problemen können Sie die ursprüngliche Datei "unknown_hosts" wiederherstellen:
cp /Users/yourmacusername/.ssh/known_hosts.bak /Users/yourmacusername/.ssh/known_hosts
quelle
ssh-keygen -R [IP_ADDRESS]
es bei mir nicht funktioniert hat. Vielen Dank!Wie viele bereits gesagt haben, verwenden Sie
ssh-keygen
, dhMöglicherweise möchten Sie auch die Überprüfung des Hostschlüssels vorübergehend deaktivieren:
quelle
Host ???? CheckHostIP no StrictHostKeyChecking no
(3 Zeilen, tabellarisch ab dem 2.)Funktioniert bei mir!
Dies zeigt an, dass Sie in Zeile Nr. 1 einen fehlerhaften RSA-Schlüssel haben. 4
Lösung 1 :
Lösung 2:
ODER
Lösung 3:
Dadurch wird die
4th
Zeile von/root/.ssh/known_hosts
in place (-i
) entfernt.quelle
Ich habe die Lösung von mockinterface verwendet, obwohl das sed-i nicht ganz funktioniert hat. Ich habe es gelöst, indem ich die Zeile von Hand mit vim gelöscht habe:
Sie können jeden anderen gewünschten Texteditor verwenden, müssen jedoch möglicherweise Ihre Administratorrechte angeben
quelle
Für Mac-Benutzer können Sie das
-R
Flag desssh-keygen
Befehls verwenden. Kurzes Beispiel:THE_IP_ADDRESS
Dies ist die IP, in die Sie ssh versuchen. Und dann können Sie gut verbinden.quelle
Dies liegt daran, dass sich die Einstellungen Ihres Remotecomputers geändert haben. Entfernen Sie dazu Ihre aktuellen Schlüssel.
vim /root/.ssh/known_hosts
Löschen Sie die Zeile der IP, die Sie verbinden.
quelle
Bearbeiten
/home/hostname /.ssh/known_hosts
und löschen Sie die 4 Zeilen und speichern Sie sie.Führen
ssh root@pong
Sie es dann erneut aus. Die folgende Meldung wird angezeigt:Are you sure you want to continue connecting (yes/no)? yes
Einfach ausdruckenyes
.quelle
Die anderen Antworten hier sind gut und trotzdem habe ich das Problem durch Löschen gelöst
~/.ssh/known_hosts
. Dies löst sicherlich das Problem, aber es ist wahrscheinlich nicht der beste Ansatz.quelle
In meinem Fall geschah dies, weil ich zuvor eine SSH-Verbindung mit einem Computer mit derselben IP (z. B. 192.152.51.10) hatte und das System den RSA-Schlüssel (gespeichert in /home/user_name/.ssh/known_hosts) des vorherigen Hosts berücksichtigte in Nichtübereinstimmung.
Um dieses Problem zu beheben , müssen Sie den zuvor gespeicherten RSA-Schlüssel für die IP 192.152.51.10 entfernen .
quelle
Einfache Einzeilerlösung, getestet auf dem Mac:
Löscht nur die Ziel-SSH-Host-IP von bekannten Hosts.
Dabei wird 212.156.48.110 durch die Ziel-Host-IP-Adresse ersetzt.
Ursache : Es ist aufgetreten, weil die Ziel-IP aufgrund der Portweiterleitung bereits für einen anderen Computer bekannt war. Durch Löschen der Ziel-IP vor dem Herstellen der Verbindung wird das Problem behoben.
quelle
Verwenden Sie diesen Befehl:
quelle
Entfernen Sie den Eintrag aus bekannten_Hosts mit:
Dadurch wird die problematische IP- Adresse oder der problematische Hostname aus der Datei " unknown_hosts " entfernt und erneut versucht, eine Verbindung herzustellen .
Aus den Manpages:
quelle
Mach einfach:
cd /home/user/.ssh/
-> hieruser
ist/home/jon/
zum Beispiel Ihr Benutzername .Dann
gedit known_hosts &
und löschen Sie den Inhalt darin.Jetzt
ssh
sollte es wieder funktionieren.quelle
Wenn Sie versuchen, mit dem Befehl eine Verbindung zum laufenden Docker-Container auf Port 2222 herzustellen, wird der Fehler angezeigt
Um dieses Problem zu lösen, gehen Sie auf Ihrem lokalen Computer (dh Host-Computer nicht Container) zu
cd ~/.ssh/
und öffnen Sie dieknown_hosts
Datei mit dem Texteditor. Entfernen Sie die Zeile beginnend mit[localhost]:2222
und speichern Sie die Datei. Versuchen Sie nun erneut, sshDer Fehler verschwindet, aber Sie müssen ihn jedes Mal neu starten, wenn der Container neu gestartet wird.
quelle
Meine Lösung ist:
vi ~/.ssh/known_hosts
Dies ist besser als alle zu löschen
known_hosts
quelle
Einziges clientseitiges Problem (doppelter Schlüssel für IP):
Varianten lösen:
Für eine eindeutige IP-Adresse (Standardport 22):
Für eine IP ( nicht Standardport ):
Schnell alle ips löschen:
7.7.7.7 - SSH Ihre Server-IP-Verbindung
333 - Nicht-Standard-Port
quelle
Manchmal, wenn Sie aus irgendeinem Grund einen Server neu installieren müssen, stellen wir bei der Verbindung über ssh fest, dass Ihr Server angibt, dass sich die Identifikation geändert hat. Wenn wir wissen, dass es sich nicht um einen Angriff handelt , sondern dass wir das System wiederhergestellt haben, können wir die alte Identifikation mit ssh-keygen von den bekannten_Hosts entfernen:
Wenn Sie erneut eine Verbindung herstellen, werden Sie aufgefordert, den neuen Fingerabdruck zu validieren:
quelle
Ich hatte dieses Problem und der Grund ist sehr einfach. Ich habe eine doppelte IP-Adresse für die SSH-Anmeldung. Nachdem Sie dieses Problem geändert haben, ist alles gelöst.
quelle
Ich hatte den gleichen Fehler auf meinem Computer und lösche die
known_hosts
Datei. Danach funktioniert sie einwandfrei.quelle
authorized_keys
wenn Sie ein Problem mit derknown_hosts
Datei habenLÖSUNG:
1- Löschen Sie aus "$ HOME / .ssh / unknown_hosts" die Zeile, die sich auf den Host bezieht, zu dem keine Verbindung hergestellt werden kann.
2- Führen Sie diesen Befehl aus: ssh-keygen -R "IP_ADDRESSorHOSTNAME" (ersetzen Sie "IP_ADDRESSorHOSTNAME" durch Ihre Ziel-IP oder Ihren Ziel-Hostnamen)
3- Wiederholen Sie die SSH-Verbindung (wenn dies fehlschlägt, überprüfen Sie bitte die Berechtigung im SSH-Verzeichnis. Es muss 700 sein.)
quelle
Meine Lösung unter UBUNTU (Linux):
1. Sie müssen den Inhalt aus der Datei "unknown_hosts" löschen, die sich in "/home/YOUR_USERNAME/.ssh/known_hosts" befindet.
2.Erstellen Sie einen neuen SSH-Schlüssel wie "ssh-keygen -t rsa -C" [email protected] "-b 4096".
3. Kopieren Sie Ihren neuen SSH-Schlüssel in Ihr SSH-Repository (in meinem Fall Gitlab) und fügen Sie SSH-Schlüssel ein.
Für mich geht das !
quelle
AWS EC2.
Finden Sie die IP in der Nachricht, die es Ihnen gibt.
Lauf
Verwenden Sie die Pfeiltasten, um die IP-Adresse in der Nachricht zu finden, und klicken Sie auf.
Dadurch wird diese Zeile gelöscht und Escape ausgeführt
Dies spart, dann können Sie loslegen.
quelle