Jak skonfigurować klucze SSH w Rocky Linux 9

Photo of author

By maciekx

Protokół SSH (Secure Shell) to fundament bezpiecznej komunikacji, umożliwiający zdalne logowanie i wydawanie poleceń na systemach Linux oraz UNIX. Zamiast tradycyjnego uwierzytelniania hasłem, które jest bardziej podatne na ataki, zaleca się wdrożenie kluczy SSH, zapewniających znacznie wyższy poziom bezpieczeństwa. Klucze SSH opierają się na kryptografii asymetrycznej, składającej się z pary kluczy: prywatnego, przechowywanego na Twoim komputerze, oraz publicznego, który instalujesz na serwerze.

Tworzenie pary kluczy SSH

Aby wygenerować unikatową parę kluczy, otwórz terminal i wprowadź poniższe polecenie:

ssh-keygen -t rsa -b 4096

  • -t rsa definiuje rodzaj klucza, gdzie RSA jest preferowanym wyborem ze względu na swoją solidność.
  • -b 4096 ustala długość klucza, z 4096 bitami uznawanymi za wystarczająco bezpieczne w większości przypadków.

W trakcie generowania kluczy system poprosi Cię o wskazanie ścieżki zapisu plików kluczy. Standardowo, są one przechowywane w następujących lokalizacjach:

  • Klucz prywatny: ~/.ssh/id_rsa
  • Klucz publiczny: ~/.ssh/id_rsa.pub

Możesz dowolnie zmienić domyślne położenie. System poprosi również o ustawienie hasła dla klucza prywatnego, co jest bardzo zalecane, ponieważ chroni go w sytuacji, gdy dostanie się w niepowołane ręce.

Przenoszenie klucza publicznego na serwer

Po wygenerowaniu kluczy, musisz przekopiować klucz publiczny na serwer, z którym planujesz się łączyć. Wykorzystaj w tym celu poniższe polecenie:

ssh-copy-id username@remote_host

  • username reprezentuje nazwę użytkownika na serwerze zdalnym.
  • remote_host to adres IP lub nazwa domenowa serwera docelowego.

Wymagane będzie podanie hasła do konta użytkownika na serwerze. Po pomyślnym przekopiowaniu klucza publicznego, logowanie do serwera nie będzie już wymagało podawania hasła. Użyj w tym celu prostego polecenia:

ssh username@remote_host

Dostosowanie konfiguracji serwera SSH

Domyślnie, serwer SSH w Rocky Linux 9 akceptuje uwierzytelnianie zarówno przy pomocy haseł, jak i kluczy SSH. Możesz skonfigurować ustawienia uwierzytelniania poprzez edycję pliku konfiguracyjnego:

sudo vim /etc/ssh/sshd_config

W pliku tym odnajdź następujące linie:

PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes

Zmień wartość PasswordAuthentication na no, aby wyłączyć logowanie za pomocą haseł, a ChallengeResponseAuthentication na yes, aby aktywować uwierzytelnianie oparte na wyzwaniu-odpowiedzi. Zapisz zmiany i zamknij plik.

Aby zmiany zaczęły obowiązywać, zrestartuj usługę SSH:

sudo systemctl restart sshd

Wykorzystanie agenta kluczy SSH

Agent kluczy SSH to program, który bezpiecznie przechowuje klucze w pamięci i automatycznie je odblokowuje, eliminując konieczność wpisywania hasła do klucza prywatnego przy każdym połączeniu.

Jak aktywować i korzystać z agenta kluczy SSH?

Aby zacząć korzystać z agenta, użyj poniższego polecenia:

ssh-agent bash

Następnie dodaj klucz SSH do agenta:

ssh-add ~/.ssh/id_rsa

Zostaniesz poproszony o podanie hasła do klucza prywatnego. Po pomyślnym dodaniu klucza, logowanie do serwera będzie już bezhasłowe:

ssh username@remote_host

Podsumowanie

Klucze SSH to znacznie bezpieczniejsza alternatywa dla uwierzytelniania hasłem, pozwalająca na zdalne logowanie i wykonywanie poleceń na serwerach Linux i UNIX z podwyższonym poziomem ochrony. Ich konfiguracja nie jest skomplikowana, a korzyści wynikające z ich użycia znacząco podnoszą bezpieczeństwo Twojej infrastruktury.

Najczęściej zadawane pytania (FAQ)

Czy jeden zestaw kluczy SSH może być używany na wielu serwerach? Oczywiście, ta sama para kluczy SSH może być wykorzystana do łączenia się z wieloma serwerami. Musisz jedynie umieścić klucz publiczny na każdym z nich.
Jak usunąć klucze z agenta SSH? Użyj komendy ssh-add -D, aby wyczyścić agenta z zapisanych kluczy.
W jaki sposób zmienić hasło klucza prywatnego SSH? Do zmiany hasła klucza prywatnego użyj komendy ssh-keygen -p -f ~/.ssh/id_rsa.
Co zrobić w przypadku utraty klucza prywatnego? W takiej sytuacji musisz wygenerować nową parę kluczy i umieścić klucz publiczny na docelowym serwerze.
Czy klucze SSH mogą być używane z innymi protokołami? Tak, klucze SSH są kompatybilne z protokołami takimi jak SFTP (Secure File Transfer Protocol) oraz SCP (Secure Copy Protocol).
Jak włączyć uwierzytelnianie wieloskładnikowe dla kluczy SSH? Uwierzytelnianie wieloskładnikowe (MFA) można zaimplementować, korzystając z aplikacji takich jak Google Authenticator.
Czy klucze SSH są całkowicie bezpieczne? Choć klucze SSH oferują wysoki poziom bezpieczeństwa, nie są niezniszczalne. Mogą zostać złamane w przypadku ataku brute force lub próby odgadnięcia hasła do klucza.
Czy przechowywanie kluczy SSH w chmurze jest bezpieczne? Przechowywanie kluczy w chmurze może być wygodne, ale zwiększa ryzyko ich potencjalnej kradzieży. Zdecydowanie bardziej zalecane jest przechowywanie kluczy lokalnie, na zabezpieczonym komputerze.

newsblog.pl