Ich habe einige Cloud-Boxen, die ihre IP häufig ändern.
Ich verwende den Hostnamen, muss aber die Datei known_hosts bei jedem Start des Servers aufgrund der folgenden Fehlermeldung bearbeiten:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is…
Gibt es, abgesehen von Sicherheitsrisiken und solchen, die mit dem, was ich tun möchte, verbunden sind, eine Möglichkeit, diesen Fehler entweder zu ignorieren oder die Datei known_hosts automatisch zu überschreiben, sodass ich sie nicht immer selbst bearbeiten muss?
quelle
Zusatz: Sie können versuchen, nur die CheckHostIP-Prüfung für diesen Namen zu deaktivieren :
quelle
Viele der Antworten hier werden funktionieren - aber technisch gesehen sind sie Workarounds. OpenSSH hat bereits eine integrierte Funktion in diesem Sinne:
HostKeyAlias
.Fügen Sie in Ihrer .ssh / config-Datei
HostKeyAlias <alias>
einer Hostkonfiguration Folgendes hinzu :Wenn diese Option aktiviert ist, wird für die Verbindung zum Server
myserver.example.com
weder der Hostname noch die IP-Adresse als lokale Referenz verwendet. Bei der Verbindung zum Server werden immer nur die angegebenen HostKeyAlias verwendet. Für mich ist es sinnvoll, den Hostnamen zu verwenden - aber Sie können natürlich jeden beliebigen Alias verwenden.Typische Konfigurationen für mich für dynamische Hosts sind wie folgt:
Dies kann auch in einigen obskuren Szenarien verwendet werden, in denen Sie wissen, dass mehrere Server dieselben Hostschlüssel haben (dies sollte im Allgemeinen nicht der Fall sein). Dies würde dann doppelte Einträge verhindern. Wenn sich die Schlüssel in Zukunft berechtigterweise ändern, müssen Sie nicht mehr mehrere Einträge ersetzen / löschen. Nur einer. Gitlab Geo-Server sind ein gutes Beispiel dafür.
In Bezug auf das Löschen der Datei known_hosts empfehle ich Ihnen, andere Fragen / Antworten zu lesen, die sich speziell auf das Verwalten / Entfernen veralteter known_hosts-Einträge beziehen. Ein Beispiel finden Sie unter So verwalten Sie meine .ssh / known_hosts-Datei . Ich bin besonders beeindruckt von der Antwort von user1953828, obwohl es (noch) nicht viele positive Stimmen gibt. :)
quelle
Ich benutze diese zwielichtigen Optionen, um dieses Problem zu umgehen. (Der öffentliche Schlüssel meines Hosts wird häufig neu generiert. Dadurch werden die IP- und Schlüsselüberprüfung entfernt.)
Sie können dies auch einfach verwenden, wenn der Schlüssel derselbe bleibt, sich aber die IP ändert:
quelle
Sie können StrictHostKeyChecking = no in Ihrer ssh- Client- Konfiguration festlegen (dh die Datei ~ / ssh / config auf dem Computer, von dem aus Sie eine Verbindung herstellen), um die Warnung zu ignorieren.
quelle
Sie könnten
CheckHostIP no
in Ihre~/.ssh/config
Datei einfügen, aber das lässt Sie für Spoofing-Angriffe offen. Wenn Sie sich darüber keine Sorgen machen, sollte diese Einstellung dieknown_hosts
Prüfung deaktivieren.quelle
Ich vermeide es, die Fingerabdrücke meiner
known_hosts
Datei hinzuzufügen, wenn ich eine Verbindung zu vorübergehenden AWS-Computern herstelle. Ich benutze einen Befehl wiemit ihnen zu verbinden. Sie werden nicht gefragt, ob Sie das Gerät der Liste der bekannten Hosts hinzufügen möchten. Ersetzen Sie dies
10.0.0.5
durch die IP-Adresse Ihres Geräts undsecret.pem
den vollständigen Pfad Ihres SSH-Schlüssels. Sie erhalten immer noch eine Warnung, dass das10.0.0.5
hinzugefügt wurde, aber es ist wirklich verschwunden/dev/null
. Ich mache das oft genug, um einen Alias in meinem Namen zu setzen~/.profile
Ich reserviere
ssh [email protected]
Typbefehle für Maschinen, bei denen ich mir die Mühe gemacht habe, den Fingerabdruck zu überprüfen.quelle
Machen Sie known_hosts schreibgeschützt.
quelle