Próbuję uaktualnić mój serwer ssh z 2048-bitowych kluczy RSA do większych kluczy, ponieważ zalecenia mają wkrótce wycofać 2048-bitowe klucze.
Wygenerowałem nowy klucz, a następnie dodałem go do konfiguracji sshd w następujący sposób:
HostKey / etc / ssh / ssh_host_rsa_key ( najpierw stary klucz 2k-bitowy) HostKey / etc / ssh / ssh_host_rsa4096_key (nowy większy klucz 2. )
Po ponownym uruchomieniu sshd
ssh'd do hosta, nie otrzymuję ostrzeżenia o zmianie identyfikacji, jednak nowy również nie jest buforowany ~/.ssh/known_hosts
. Jeśli ustawię wiersze w odwrotnej kolejności, otrzymam ostrzeżenie o zmianie identyfikacji. Podobnie, gdy dodam klucz ed25519, bez względu na kolejność, w jakiej go wprowadzę, klient nie dodaje nowego klucza do znanego pliku hosts.
Wydaje się, że uniemożliwia to przechodzenie klucza hosta SSH - trudno w to uwierzyć, ale tak naprawdę biorąc pod uwagę, że bezpieczeństwo wymaga rutynowej aktualizacji kluczy.
Wiem, że możesz po prostu wymienić klucz, a następnie każdy klient musi uruchomić, ssh-keygen -R
aby usunąć stary klucz, a następnie ręcznie zweryfikować i zaakceptować nowy klucz - ale to prawdziwy ból, szczególnie jeśli masz wielu klientów łączących się lub nie administrujących wszyscy klienci. Nie wspominając o tym, że jeśli nie administrujesz klientami, istnieje duża szansa, że tak naprawdę nie sprawdzą klucza hosta, a zamiast tego po prostu uderzą w Y - więc próba poprawy bezpieczeństwa prawdopodobnie otworzy cię na man-in zamiast tego środkowe ataki.
Czy jest jakiś sposób, aby uaktualnienia klucza hosta SSH działały? Oznacza to, że klienci powinni nauczyć się nowego, bezpieczniejszego klucza (a także, mam nadzieję, odinstalować przestarzały klucz). I bez podania klucza hosta zmieniono ostrzeżenie „człowiek w środku”.
Odpowiedzi:
Rotacja klucza hosta jest obsługiwana od OpenSSH 6.8 (zarówno klient, jak i serwer dodają obsługę w tej wersji).
Proces powinien więc działać w ten sposób:
HostKey newkey
(po istniejących) do/etc/ssh/sshd_config
sshd
UpdateHostKeys yes
w swojej konfiguracji (globalnie lub dla jednego hosta)sshd_config
i uruchomić ponowniesshd
Nowi klienci będą mogli odebrać nowe klucze. Ta funkcja nie jest domyślnie włączona, prawdopodobnie dlatego, że jest całkiem nowa i wkrótce pojawiła się kwestia bezpieczeństwa. Ale w dzisiejszych czasach korzystanie z niego powinno być w porządku.
źródło
sshd zawsze używa pierwszego wiersza, więc usuń go, a następnie uruchom ponownie sshd.
źródło