Wymiana kluczy SSH na Ed25519

W ostatnim czasie – okazało się, że wygenerowanie kolizji dla funkcji skrótu SHA-1 może być niepokojąco tanie. Powoduje to coraz większe zagrożenie dla bezpieczeństwa w miejscach gdzie powszechnie używa się tego algorytmu. Przy tej okazji – warto zadbać o bezpieczeństwo dostępu do naszych serwerów i wymienić, zapewne sosowane przez Ciebie klucze RSA na coś, co zapewnia większy poziom bezpieczeństwa, np Ed25519.

Dlaczego Ed25519?

Klucze Ed25519 obsługiwane są przez OpenSSH od 2014 roku i wykorzystują kryptografię krzywych eliptycznych. Oferują większy poziom bezpieczeństwa niż domyślne klucze RSA, a ponadto są szybsze. Dodatkowo – warto zwrócić uwagę, że publiczny klucz jest bardzo krótki i składa się tylko z 68 znaków, co powoduje że zarządzanie tymi kluczami jest po prostu łatwiejsze. Wyświetlanie zawartości listy kluczy dozwolonych do logowania na serwerze – mieści się na ekranie bez zawijania wierszy.

Generowanie klucza Ed25519

Klucze Ed25519 możemy wygenerować, podobnie jak klucze RSA przy pomocy ssh-keygen:

ssh-keygen -a 100 -t ed25519 -f ~/.ssh/id_ed25519 -N ''

Parametry polecenia:

-a 100 – ilość rund KDF użytych przy generowaniu klucza. Im wyższa wartość, tym otrzymujemy większą odporność na ataki typu brute force. Wartość 100 będzie wystarczająca,

-t ed25519 – wybór rodzaju klucza który ma być wygenerowany, w tym przypadku Ed25519,

-f ~/.ssh/id_ed25519 – nazwa pliku w którym ma zostać zapisany klucz,

-N ” – klucz zostanie zabezpieczony „pustym” hasłem. Dzięki temu, przy logowaniu do serwera nie będziemy musieli podawać hasła.

Logowanie za pomocą klucza Ed25519

Po wygenerowaniu klucza – należy umieścić go na serwerze do którego chcemy się logować. Najprościej – użyć do tego narzędzia ssh-copy-id:

ssh-copy-id -i ~/.ssh/ed25519.pub [email protected]

Jeśli wszystko zakończyło się prawidłowo – możemy zalogować się na konto:

ssh -i ~/.ssh/id_ed25519 [email protected]

Jeśli wcześniej używaliśmy kluczy RSA, warto przejrzeć serwery, dokonać edycji pliku .ssh/authorized_keys i usunąć stare klucze RSA, zostawiając jedynie Ed25519.