Ich versuche, meinen SSH-Server von 2048-Bit-RSA-Schlüsseln auf größere Schlüssel zu aktualisieren, da empfohlen wird, 2048-Bit-Schlüssel bald auslaufen zu lassen.
Ich habe einen neuen Schlüssel generiert und ihn dann wie folgt zur sshd-Konfiguration hinzugefügt:
HostKey / etc / ssh / ssh_host_rsa_key (alter 2k-Bit-Schlüssel zuerst) HostKey / etc / ssh / ssh_host_rsa4096_key (neuer größerer Schlüssel 2. )
Nach dem Neustart sshd
schicke ich eine Nachricht an den Host. Ich bekomme keine Warnung, dass sich die Identifikation geändert hat, aber die neue wird auch nicht zwischengespeichert ~/.ssh/known_hosts
. Wenn ich die Zeilen in die entgegengesetzte Reihenfolge bringe, erhalte ich die Warnung, dass sich die Identifikation geändert hat. Wenn ich einen ed25519-Schlüssel hinzufüge, fügt der Client unabhängig von der Reihenfolge, in der ich ihn eingebe, den neuen Schlüssel nicht zur bekannten Hosts-Datei hinzu.
Dies scheint ein Rollover des SSH-Hostschlüssels unmöglich zu machen - es ist jedoch schwer zu glauben, dass dies tatsächlich der Fall ist, wenn man bedenkt, dass die Sicherheit routinemäßig ein Upgrade der Schlüssel erfordert.
Ich weiß, dass Sie den Schlüssel einfach austauschen können. Dann muss jeder Client ausgeführt werden ssh-keygen -R
, um den alten Schlüssel zu entfernen. Anschließend muss der neue Schlüssel manuell überprüft und akzeptiert werden alle kunden. Nicht zu vergessen, wenn Sie die Clients nicht verwalten, ist die Wahrscheinlichkeit sehr hoch, dass sie den Host-Schlüssel nicht überprüfen und stattdessen einfach Y drücken. Wenn Sie also versuchen, die Sicherheit zu verbessern, werden Sie wahrscheinlich tatsächlich für den Benutzer geöffnet. stattdessen die mittleren Angriffe.
Gibt es eine Möglichkeit, SSH-Hostschlüssel-Upgrades zum Laufen zu bringen? Das heißt, Clients sollten den neuen sichereren Schlüssel erlernen (und hoffentlich auch den veralteten Schlüssel nicht erlernen). Und ohne den Host-Schlüssel zu geben, änderte sich die Man-in-the-Middle-Warnung.
Antworten:
Die Host-Key-Rotation wird seit OpenSSH 6.8 unterstützt (Client und Server bieten in dieser Version zusätzliche Unterstützung).
Der Prozess sollte also so funktionieren:
HostKey newkey
(nach den vorhandenen) zum hinzu/etc/ssh/sshd_config
sshd
UpdateHostKeys yes
in ihrer Konfiguration eingerichtet werden (entweder global oder pro Host)sshd_config
und neu startensshd
Die neuen Clients können die neuen Schlüssel abholen. Diese Funktion ist standardmäßig nicht aktiviert, wahrscheinlich, weil sie ziemlich neu ist und bald einige Sicherheitsaspekte aufwies. Aber heutzutage sollte es in Ordnung sein, es zu benutzen.
quelle
sshd benutze immer die erste Zeile, also lösche sie und starte sshd neu.
quelle