Jak skonfigurować klucze SSH w Rocky Linux 9

Jak skonfigurować klucze SSH w Rocky Linux 9

Wprowadzenie

Protokół SSH (Secure Shell) jest bezpiecznym protokołem komunikacyjnym, który umożliwia zdalne logowanie i wykonywanie poleceń na serwerach Linux i UNIX. Aby zwiększyć bezpieczeństwo, zamiast używać haseł, zaleca się stosowanie kluczy SSH. Klucze SSH to pary kryptograficzne składające się z klucza prywatnego, który jest przechowywany na komputerze lokalnym, oraz klucza publicznego, który jest przesyłany na serwer zdalny.

Generowanie kluczy SSH

Jak wygenerować klucze SSH?

Aby wygenerować parę kluczy SSH, w terminalu uruchom następujące polecenie:


ssh-keygen -t rsa -b 4096

* -t rsa określa typ klucza (RSA jest zalecanym typem)
* -b 4096 określa rozmiar klucza (4096 bitów jest wystarczającym rozmiarem dla większości zastosowań)

Podczas generowania kluczy zostaniesz poproszony o podanie ścieżki do pliku kluczy. Domyślnie klucze są przechowywane w następujących lokalizacjach:

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

Możesz zmienić te domyślne ścieżki, podając inną lokalizację. Zostaniesz również poproszony o podanie hasła do zaszyfrowania klucza prywatnego. Zaleca się ustawienie silnego hasła, ponieważ ochroni ono klucz prywatny w przypadku jego kradzieży.

Kopiowanie klucza publicznego na serwer zdalny

Po wygenerowaniu pary kluczy SSH musisz skopiować klucz publiczny na serwer zdalny, do którego chcesz się połączyć. Możesz to zrobić za pomocą następującego polecenia:


ssh-copy-id username@remote_host

* username to nazwa użytkownika na serwerze zdalnym
* remote_host to adres IP lub nazwa domeny serwera zdalnego

Zostaniesz poproszony o podanie hasła do konta użytkownika na serwerze zdalnym. Po pomyślnym skopiowaniu klucza publicznego możesz połączyć się z serwerem zdalnym bez hasła, używając następującego polecenia:


ssh username@remote_host

Konfiguracja serwera SSH

Domyślnie serwer SSH w Rocky Linux 9 jest skonfigurowany do akceptowania uwierzytelnienia opartego na hasłach i kluczu SSH. Możesz jednak dostosować ustawienia uwierzytelniania, edytując plik konfiguracyjny SSH:


sudo vim /etc/ssh/sshd_config

W pliku konfiguracyjnym znajdź następujące linie:


PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes

Zmień PasswordAuthentication na no, aby wyłączyć uwierzytelnianie oparte na hasłach, a ChallengeResponseAuthentication na yes, aby włączyć uwierzytelnianie oparte na wyzwaniu-odpowiedzi. Zapisz i zamknij plik konfiguracyjny.

Aby zastosować zmiany, uruchom ponownie usługę SSH:


sudo systemctl restart sshd

Korzystanie z kluczy SSH z agentem kluczy SSH

Agent kluczy SSH to proces, który przechowuje klucze SSH w pamięci i automatycznie odblokowuje je, gdy są potrzebne. Dzięki temu nie musisz wpisywać hasła do klucza prywatnego za każdym razem, gdy się łączysz z serwerem SSH.

Jak korzystać z agenta kluczy SSH?

Aby rozpocząć korzystanie z agenta kluczy SSH, uruchom następujące polecenie:


ssh-agent bash

Następnie dodaj klucze SSH do agenta:


ssh-add ~/.ssh/id_rsa

Zostaniesz poproszony o podanie hasła do klucza prywatnego. Po dodaniu kluczy do agenta możesz się połączyć z serwerem SSH bez podawania hasła, używając następującego polecenia:


ssh username@remote_host

Wnioski

Klucze SSH są bezpieczniejszą alternatywą dla uwierzytelniania opartego na hasłach. Umożliwiają bezpieczne zdalne logowanie i wykonywanie poleceń na serwerach Linux i UNIX. Konfigurowanie kluczy SSH jest stosunkowo proste i może znacznie poprawić bezpieczeństwo Twojej infrastruktury.

Często zadawane pytania (FAQ)

* Czy mogę używać kluczy SSH z wieloma serwerami zdalnymi?

Tak, możesz używać tej samej pary kluczy SSH do łączenia się z wieloma serwerami zdalnymi. Wystarczy tylko skopiować klucz publiczny na każdy serwer zdalny.

* Jak usunąć klucze SSH z agenta kluczy SSH?

Aby usunąć klucze SSH z agenta kluczy SSH, uruchom następujące polecenie:


ssh-add -D

* Jak zmienić hasło do klucza prywatnego SSH?

Aby zmienić hasło do klucza prywatnego SSH, uruchom następujące polecenie:


ssh-keygen -p -f ~/.ssh/id_rsa

* Co zrobić, jeśli zgubię swój klucz prywatny SSH?

Jeśli zgubisz swój klucz prywatny SSH, musisz wygenerować nową parę kluczy i skopiować klucz publiczny na serwer zdalny.

* Czy mogę używać kluczy SSH do połączenia się z innymi protokołami?

Tak, klucze SSH można wykorzystać do połączenia się z innymi protokołami, takimi jak SFTP (Secure File Transfer Protocol) i SCP (Secure Copy Protocol).

* Jak skonfigurować uwierzytelnianie wieloskładnikowe dla kluczy SSH?

Możesz skonfigurować uwierzytelnianie wieloskładnikowe dla kluczy SSH, korzystając z programu Google Authenticator lub podobnego rozwiązania.

* Czy klucze SSH są całkowicie bezpieczne?

Klucze SSH są bardzo bezpieczne, ale nie są niezniszczalne. Nadal możliwe jest złamanie klucza SSH, jeśli zostanie on narażony na atak typu brute force lub atak łamiący hasła.

* Czy powinienem przechowywać klucze SSH w chmurze?

Przechowywanie kluczy SSH w chmurze może być wygodne, ale także zwiększa ryzyko ich kradzieży. Zaleca się przechowywanie kluczy SSH w bezpiecznym miejscu na komputerze lokalnym.