Jak skonfigurować klucze SSH na CentOS

Jak skonfigurować klucze SSH na CentOS

Klucze SSH to bezpieczny sposób na uwierzytelnianie do serwera bez konieczności wpisywania hasła. Są one szczególnie przydatne dla administratorów serwerów, którzy często muszą uzyskać dostęp do wielu maszyn. Ten przewodnik przeprowadzi Cię przez proces konfigurowania kluczy SSH na serwerze CentOS.

Wprowadzenie

SSH (Secure Shell) to protokół sieciowy, który umożliwia bezpieczne połączenia między dwoma komputerami. Jest używany do zdalnego administrowania serwerami, przekazywania plików i uruchamiania poleceń. Tradycyjnie SSH korzysta z uwierzytelniania hasłem, ale klucze SSH oferują znacznie bezpieczniejszą alternatywę.

Klucze SSH wykorzystują kryptografię asymetryczną, która generuje parę kluczy: klucz publiczny i klucz prywatny. Klucz publiczny jest udostępniany serwerowi, a klucz prywatny jest przechowywany na komputerze klienta. Gdy klient chce połączyć się z serwerem, serwer weryfikuje klucz publiczny klienta w celu ustalenia tożsamości.

Konfiguracja kluczy SSH

Generowanie kluczy SSH

Pierwszym krokiem jest wygenerowanie pary kluczy SSH. Otwórz terminal i wpisz następujące polecenie:


ssh-keygen -t ed25519

Zostaniesz poproszony o podanie nazwy pliku dla kluczy. Domyślną nazwą jest id_ed25519. Możesz ją zaakceptować lub podać inną.

Następnie zostaniesz poproszony o podanie hasła do klucza prywatnego. Hasło jest opcjonalne, ale zalecane.

Skopiowanie klucza publicznego na serwer

Po wygenerowaniu kluczy należy skopiować klucz publiczny na serwer. Otwórz terminal i wpisz następujące polecenie:


ssh-copy-id uzytkownik@serwer

Zastąp uzytkownik nazwą użytkownika na serwerze, a serwer adresem IP lub nazwą domeny serwera.

Zostaniesz poproszony o podanie hasła użytkownika na serwerze. Po pomyślnym skopiowaniu klucza publicznego otrzymasz komunikat potwierdzający.

Konfiguracja serwera SSH

Domyślnie serwer SSH na CentOS jest skonfigurowany do uwierzytelniania hasłem. Aby zezwolić na uwierzytelnianie za pomocą kluczy SSH, należy zmodyfikować plik konfiguracyjny SSH. Otwórz plik /etc/ssh/sshd_config za pomocą dowolnego edytora tekstu.

Znajdź następującą linię:


PasswordAuthentication yes

I zmień ją na:


PasswordAuthentication no

Znajdi również następującą linię:


PubkeyAuthentication no

I zmień ją na:


PubkeyAuthentication yes

Zapisz zmiany i uruchom ponownie usługę SSH za pomocą następującego polecenia:


systemctl restart sshd

Testowanie uwierzytelniania za pomocą kluczy SSH

Teraz, gdy serwer SSH jest skonfigurowany do uwierzytelniania za pomocą kluczy SSH, możesz przetestować połączenie. Otwórz terminal i wpisz następujące polecenie:


ssh uzytkownik@serwer

Zastąp uzytkownik nazwą użytkownika na serwerze, a serwer adresem IP lub nazwą domeny serwera.

Nie powinieneś być proszony o podanie hasła. Jeśli połączenie zostanie pomyślnie nawiązane, zobaczysz monit powłoki serwera.

Konfigurowanie agencji SSH

Agencja SSH to proces, który przechowuje klucze SSH i umożliwia automatyczne uwierzytelnianie bez konieczności ręcznego wpisywania hasła klucza prywatnego. Aby skonfigurować agencję SSH, należy dodać następujący wiersz do pliku ~/.bashrc:


eval "$(ssh-agent -s)"

Uruchom ponownie terminal lub wpisz polecenie source ~/.bashrc w bieżącym terminalu, aby załadować zmiany.

Aby dodać klucz SSH do agencji, wpisz następujące polecenie:


ssh-add ~/.ssh/id_ed25519

Zostaniesz poproszony o podanie hasła klucza prywatnego. Po dodaniu klucza do agencji nie będziesz już proszony o podanie hasła podczas łączenia się z serwerami, które zaakceptują klucz publiczny.

Konfigurowanie wielu kluczy SSH

Możesz wygenerować wiele par kluczy SSH i używać różnych kluczy do łączenia się z różnymi serwerami. Aby skonfigurować wiele kluczy SSH, wykonaj następujące kroki:

1. Wygeneruj nową parę kluczy SSH za pomocą polecenia ssh-keygen -t ed25519 -f ~/.ssh/klucz_specjalny.
2. Skopiuj klucz publiczny na serwer za pomocą polecenia ssh-copy-id -i ~/.ssh/klucz_specjalny uzytkownik@serwer.
3. Dodaj klucz prywatny do agencji SSH za pomocą polecenia ssh-add ~/.ssh/klucz_specjalny.

Po skonfigurowaniu wielu kluczy SSH możesz użyć opcji -i w poleceniu ssh w celu określenia, którego klucza prywatnego należy użyć do uwierzytelnienia.

Wnioski

Konfiguracja kluczy SSH to skuteczny sposób na zwiększenie bezpieczeństwa serwera i usprawnienie zarządzania serwerem. Klucze SSH zapewniają bezpieczne uwierzytelnianie bez konieczności wpisywania hasła, co czyni je preferowaną metodą uwierzytelniania dla administratorów serwerów.

Często задаваемые pytania

1. Dlaczego powinienem używać kluczy SSH?
Klucze SSH są bezpieczniejsze niż uwierzytelnianie hasłem, ponieważ wykorzystują kryptografię asymetryczną. Zapewniają również wygodę, ponieważ nie musisz wpisywać hasła przy każdym łączeniu się z serwerem.

2. Czy mogę używać kluczy SSH do łączenia się z serwerami Windows?
Tak, możesz używać kluczy SSH do łączenia się z serwerami Windows za pomocą narzędzi takich jak PuTTY lub WinSCP.

3. Jak mogę zresetować hasło do klucza prywatnego?
Nie możesz zresetować hasła do klucza prywatnego. Jeśli zapomnisz hasło, jedynym rozwiązaniem jest wygenerowanie nowej pary kluczy.

4. Co to jest agencja SSH?
Agencja SSH to proces, który przechowuje klucze SSH i umożliwia automatyczne uwierzytelnianie bez konieczności ręcznego wpisywania hasła klucza prywatnego.

5. Czy mogę używać kluczy SSH do logowania się do innych aplikacji?
Tak, niektóre aplikacje, takie jak Git i Docker, obsługują uwierzytelnianie za pomocą kluczy SSH.

6. Jak mogę wygenerować klucz SSH bez hasła?
Możesz wygenerować klucz SSH bez hasła, używając opcji -N w poleceniu ssh-keygen. Zaleca się jednak ustawienie silnego hasła dla klucza prywatnego w celu zwiększenia bezpieczeństwa.

7. Czy mogę skonfigurować uwierzytelnianie dwuskładnikowe za pomocą kluczy SSH?
Tak, możesz skonfigurować uwierzytelnianie dwuskładnikowe za pomocą kluczy SSH, używając aplikacji uwierzytelniającej lub klucza sprzętowego.

8. Jak mogę zablokować klucze SSH w przypadku utraty lub kradzieży?
Możesz zablokować klucze SSH, zmieniając hasło lub usuwając plik klucza prywatnego. Możesz również skontaktować się z dostawcą usługi przechowywania kluczy, jeśli używasz zewnętrznej usługi zarządzania kluczami.