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.