
Beachten Sie, dass es bei dieser Frage um die Behebung des Problems „REMOTE HOST IDENTIFICATION HAT SICH GEÄNDERT!“ geht.auf der Serverseite.
Ich kenne die Implikation und ich weiß genau, was ich tue –
- Ich installiere meinen Server neu/aktualisiere ihn und möchte, dass der Vorgang so reibungslos wie möglich abläuft.
- Während der Neuinstallation/Aktualisierung muss ich möglicherweise mehrmals zwischen der alten und der neuen Version hin- und herbooten.
Daher muss ich die Warnung auf der Clientseite so weit wie möglich eliminieren. Andernfalls muss ich meine ~/known_hosts
Datei unnötig hin und her schieben.
Wie kann ich also den Fingerabdruck/ECDSA-Schlüssel meines neuen Servers wie zuvor einstellen?
Antwort1
Update: Nachdem ich ein bisschen darüber nachgedacht habe, werde ich meine Empfehlung wohl dahingehend ändern, dass ich nur die Schlüsseldateien und die Konfigurationseinträge, die auf sie verweisen, kopiere. Die Schlüsseldateien befinden sich alle in /etc/ssh/, sind benannt ssh_host_<keytype>_key
und haben jeweils eine entsprechende öffentliche Schlüsseldatei mit einer .pub
Erweiterung. Hier ist ein Beispiel mit den Schlüsseln dsa, ecdsa, ed25519 und rsa:
$ cd /etc/ssh
$ ls -l ssh_host_*key*
-rw------- 1 root root 668 Apr 8 03:43 ssh_host_dsa_key
-rw-r--r-- 1 root root 606 Apr 8 03:43 ssh_host_dsa_key.pub
-rw------- 1 root root 227 Apr 8 03:43 ssh_host_ecdsa_key
-rw-r--r-- 1 root root 178 Apr 8 03:43 ssh_host_ecdsa_key.pub
-rw------- 1 root root 411 Apr 8 03:43 ssh_host_ed25519_key
-rw-r--r-- 1 root root 98 Apr 8 03:43 ssh_host_ed25519_key.pub
-rw------- 1 root root 1679 Apr 8 03:43 ssh_host_rsa_key
-rw-r--r-- 1 root root 398 Apr 8 03:43 ssh_host_rsa_key.pub
Und es gibt möglicherweise HostKey
Einträge in /etc/ssh/sshd_config, die sshd anweisen, diese zu verwenden. In meinem Fall sind die Dateien nur die Standarddateien, daher sind die relevanten Zeilen auskommentiert:
$ grep HostKey /etc/ssh/sshd_config
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key
Sie sollten in der Lage sein, die Schlüsseldateien vom ursprünglichen Server zu klonen (achten Sie darauf, dass die alten Berechtigungen beibehalten werden). Wenn es unkommentierte HostKey
Einträge gibt, sollten Sie diese ebenfalls zur neuen Konfigurationsdatei hinzufügen sshd_config
. Wenn Sie dort weitere nicht standardmäßige Einstellungen haben, sollten Sie diese ebenfalls kopieren.
Ursprünglich hatte ich empfohlen, einfach das gesamte /etc/ssh/
Verzeichnis vom alten auf den neuen Server zu klonen. Das hat den Vorteil, dass alle zusätzlichen Einstellungsänderungen, die Sie vorgenommen haben, automatisch kopiert werden. Der Nachteil (und der Grund, warum ich mich dazu entschieden habe, es nicht zu empfehlen) ist, dass die alte Konfiguration möglicherweise keine Änderungen enthält, die zur Verbesserung der Sicherheit vorgenommen wurden.
Beispielsweise verfügt Ihre alte Konfiguration möglicherweise nicht über eine /etc/ssh/moduli-Datei mit benutzerdefinierten Diffie-Hellman-Modulen, und die neue Betriebssystemversion generiert möglicherweise keine automatisch. Dies wäre ein Problem, da das Standardmodul nicht sehr sicher ist und da jeder früher dasselbe verwendete, war ein Angriff darauf ein Angriff auf alle. SieheHierUndHierfür weitere Informationen.
Wenn Ihre „alte“ Serverkonfiguration nicht zu alt ist, sollte sie bereits eine benutzerdefinierte Moduli-Datei enthalten, aber das ist nur ein Beispiel; es gibt wahrscheinlich noch andere Dinge, die aktualisiert werden sollten, daher ist die Verwendung einer weitgehend neuen Konfiguration wahrscheinlich besser. Übrigens verursacht die Verwendung anderer Moduli keinen Fehler vom Typ „ID GEÄNDERT“, wenn diese Datei also auf dem alten Server vorhanden ist, müssen Sie sie nicht kopieren.