Ich habe einen Server (nehmen wir an, seine IP ist abcd), mit dem sich Benutzer über ssh anmelden können. Jetzt möchte ich die physische Maschine ändern und die IP-Adresse beibehalten. Damit ein Benutzer wie dieser weiterhin auf die neue Maschine zugreift
$ ssh abcd
Das Problem ist, dass jedes Mal, wenn ein Benutzer versucht, sich anzumelden, der folgende Fehler bei der Nichtübereinstimmung des SSH-Schlüssels angezeigt wird.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @ WARNUNG: IDENTIFIZIERUNG DES FERNHOSTES GEÄNDERT! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ ES IST MÖGLICH, DASS JEMAND ETWAS SCHLECHTES TUT! Jemand könnte Sie gerade belauschen (Man-in-the-Middle-Angriff)! Es ist auch möglich, dass der RSA-Hostschlüssel gerade geändert wurde. Der Fingerabdruck für den vom Remote-Host gesendeten RSA-Schlüssel lautet 02: dc: c6: 18: 1b: 34: b7: 1d: fa: 90: ab: e1: 95: 48: 69: 84. Bitte kontaktieren Sie Ihren Systemadministrator. Fügen Sie den richtigen Hostschlüssel in /home/user/.ssh/known_hosts hinzu, um diese Nachricht zu entfernen. Beleidigender Schlüssel in /home/user/.ssh/known_hosts:37 Der RSA-Hostschlüssel für Alumni hat sich geändert und Sie haben eine strikte Überprüfung angefordert. Überprüfung des Hostschlüssels fehlgeschlagen.
Ich weiß, dass der Benutzer Zeile 37 aus der Datei ~ / .ssh / unknown_hosts löschen kann und beim nächsten Mal eine Ja / Nein-Aufforderung erhalten würde. Was ich möchte, ist, dass der Benutzer nicht über diese ganze Sache mit dem Austausch von Maschinen informiert wird und nur eine Aufforderung zur Eingabe des Passworts erhält.
Wie geht das?
ssh
einzigen Schutz gegen Menschen bei mittleren Angriffen zunichte machen würde und dazu führen könnte, dass Sie Ihr Passwort direkt an den Angreifer anstatt an den beabsichtigten Computer senden? Sofern Sie nicht wissen, dass Sie für aktive Angriffe unverwundbar sind (z. B. befinden Sie sich im selben sicheren internen Netzwerk wie der Zielcomputer), wird dasssh
Sicherheitsmodell zerstört .Antworten:
Wie von Ethabell erwähnt, können Sie die aktuellen Hostschlüssel auf den neuen Server kopieren.
Sie finden Ihre Host-Schlüssel, indem Sie Ihre
sshd_config
Datei öffnen (auf meiner Ubuntu 12.04-Box/etc/ssh/sshd_config
). Suchen Sie in der Konfigurationsdatei nach denHostKey
Einträgen. Diese Einträge zeigen Ihnen, wo sich die Hostschlüsseldateien befinden. Sie sollten in der Lage sein, diese Dateien auf den neuen Server zu kopieren und die neuen Server so zu aktualisierensshd_config
, dass sie auf die kopierten Schlüssel verweisen (oder einfach die Dateien überschreiben, die bereits auf dem neuen Server vorhanden sind).Beachten Sie auch diesen Abschnitt auf der
sshd_config
Manpage, insbesondere den Teil über Berechtigungen:quelle
Wenn Sie den ursprünglichen Hostschlüssel hätten, könnten Sie ihn wiederherstellen, und dies würde den Fehler stoppen.
Oder Sie können StrictHostKeyChecking in Ihrer sshd-Konfigurationsdatei deaktivieren.
... Dies zu tun ist jedoch eine schreckliche, schreckliche Idee. Wenn es eine Möglichkeit gibt, nur
ssh-keygen -R server.example.com
auf Client-Computern zu arbeiten, ist dies der beste Weg - denn das Deaktivieren der Host-Schlüsselprüfung ist wie das Sagen von "Hey. Greife mich an." Ich möchte Dunkelheit, wenn sich die Dinge ändern, aber Sicherheit sollte Priorität 1 vor der Verschleierung von Änderungen haben.quelle
Sie können es so versuchen
Beachten Sie, dass der obige Befehl fehlschlägt, wenn der Ordner .ssh noch nicht vorhanden ist. Darüber hinaus ist es möglicherweise besser, beim Erstellen der Datei eine möglichst geringe Berechtigung festzulegen (im Grunde nur Lese- und Schreibzugriff für den Eigentümer). Hier ist ein erweiterter Befehl:
Um mehr über dieses Problem zu erfahren, müssen Sie diese Website aufrufen : SSH Host Key Change Error
quelle