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.