Prozess zum Verschieben von SSH-Serverschlüsseln auf einen neuen Server

9

In Kürze wird ein Server auf neue Hardware in einem neuen Rechenzentrum umgestellt, und dies bedeutet natürlich eine neue IP.

Was ist der richtige Prozess (wenn überhaupt), um die SSH-Schlüssel vom ursprünglichen Server auf den neuen zu verschieben, damit verbindende Clients keine Warnungen erhalten oder erneut etwas akzeptieren müssen?

Ist es überhaupt möglich, wenn man bedenkt, dass sich die IP ändert?

Welche Dateien muss ich verschieben? Ich gehe von allen ssh_host_ * -Dateien aus.

Wechsel von RHEL 5 zu Ubuntu 10.04.

Daniel Huckstep
quelle

Antworten:

8

Sie können die Schlüssel ohne großen Aufwand von Ihrem aktuellen Serer auf den neuen Server verschieben. Sie müssen nur sicherstellen, dass sie sich an demselben Ort befinden und dieselbe Berechtigung haben.

Im Idealfall sollten Sie jedoch die Gelegenheit nutzen, neue Schlüssel zu erstellen und die Clientschlüssel im Interesse der Sicherheit zu aktualisieren.

Mike
quelle
2
Ich habe vergessen hinzuzufügen, dass Ihre Benutzer möglicherweise eine Warnung erhalten, wenn sie eine Verbindung zum neuen Host herstellen, dass sie bereits einen Host in ihrer Datei mit bekannten Hosts haben, der dem Schlüssel entspricht, gegen den sie sich authentifizieren. Dies bedeutet, dass sie den Eintrag in ihrer bekannten Hosts-Datei entfernen müssen. Daran kommt man nicht vorbei.
Mike
1
Wenn Benutzer trotzdem eine Warnung erhalten, ist es dann sinnvoll, die Tasten zu bewegen?
Daniel Huckstep
1
Benutzer erhalten eine Warnung. Es wird ein Mann in der mittleren Angriffsnachricht sein. Es sieht beängstigend aus, aber wenn Sie know_hosts vom Client löschen, erhalten sie eine weniger beängstigende Nachricht. Ich weiß nicht, um welche Eingabeaufforderung es sich handelt.
Egorgry
5

1) Wenn Ihre sshd-Konfigurationsdateien unter / etc / ssh / gespeichert sind, müssen Sie alle kopieren. Dort finden Sie die sshd-Konfiguration sowie das Host-Schlüsselpaar.

Stellen Sie sicher, dass Sie auch die Berechtigungen korrekt kopieren! Der sshd ignoriert einfach Schlüssel, die nicht richtig geschützt sind. (Gut, da ein ungeschützter privater Schlüssel eine sehr schlechte Idee ist.)

2) Wenn Sie bereits öffentliche Schlüssel von vertrauenswürdigen Remote-Hosts hinzugefügt haben und kein Kennwort mehr benötigen, um sich anzumelden, müssen Sie diese Informationen auch kopieren, damit die automatische Anmeldung jetzt wieder funktioniert. Diese Informationen werden normalerweise in /home/-account-/.ssh/ (unter autorisierten_Tasten) gespeichert. Vergessen Sie auch hier nicht die Berechtigungen.


In Bezug auf die Änderung der IP-Adresse wird davon ausgegangen, dass die Remote-Clients tatsächlich eine Änderung der IP-Adresse feststellen (Sie stehen nicht hinter einem Reverse-Proxy oder Ähnlichem). Nein, der Benutzer muss das Zertifikat erneut akzeptieren. (Da in der Datei "unknown_hosts" des Remoteclients die IP-Adresse des Servers und das Serverzertifikat zusammen gespeichert wurden.) Schlimmer noch, wenn Sie diese IP-Adresse einem anderen SSH-Server zuweisen, werden sie möglicherweise sogar vor einem Man-in-the-Middle-Angriff gewarnt.

Es ist also sinnvoll, nur dieselbe (externe) IP-Adresse auf dem neuen Server zu verwenden.

Arnout
quelle
0

Sie haben Ihr Betriebssystem nicht erwähnt. Ich kann Ihnen mit Sicherheit sagen, dass auf einem RHEL-Host die Serverschlüssel in / etc / ssh gespeichert sind. Kopieren Sie einfach das gesamte Verzeichnis. Sie müssen dann sshd bounce / die Box neu starten.

Ich glaube, solange Sie über denselben DNS-Namen eine Verbindung herstellen, sollten Sie keine Warnungen erhalten. Auch mit der neuen IP.


- Christ Karel

Christopher Karel
quelle
Hinweis über die Betriebssysteme hinzugefügt
Daniel Huckstep
1
Dann ist / etc / ssh das gewünschte Verzeichnis. Ich würde nur die ssh_host * -Tasten empfehlen. Verschieben Sie die Konfigurationsdateien nicht. Und Sie möchten die Zielseite der Dinge sichern, nur um sicher zu gehen.
Christopher Karel