Ubuntu 24.04 i 26.04 LTS • Samouczek uwierzytelniania kluczem SSH

Jak skonfigurować klucze SSH w systemie Ubuntu

Postępuj zgodnie z tym przewodnikiem krok po kroku, aby skonfigurować uwierzytelnianie oparte na kluczu SSH na serwerze Ubuntu. Zaloguj się bezpiecznie bez hasła i opcjonalnie całkowicie wyłącz uwierzytelnianie hasłem.

Przewodnik 4-etapowy Ubuntu 24.04 i 26.04 LTS Całodobowa pomoc na żywo

Przewodnik krok po kroku

Wykonaj dokładnie każdy krok, aby skonfigurować uwierzytelnianie za pomocą klucza SSH na serwerze Ubuntu.

1

Utwórz parę kluczy RSA

Uruchom poniższe polecenie na komputerze lokalnym, aby wygenerować parę kluczy RSA (obecne wersje ssh-keygen domyślnie używają 3072 bitów — użyj -b 4096 , aby uzyskać silniejszy klucz):

 $ ssh-keygen

Gdy pojawi się monit o podanie ścieżki do pliku, naciśnij Enter , aby zaakceptować domyślną ścieżkę ( ~/.ssh/id_rsa ). Opcjonalnie ustaw hasło, aby zapewnić dodatkową warstwę bezpieczeństwa.

Tworzone są dwa pliki: ~/.ssh/id_rsa (klucz prywatny — należy go zachować w tajemnicy) i ~/.ssh/id_rsa.pub (klucz publiczny — należy go umieścić na serwerze).

2

Skopiuj klucz publiczny na serwer Ubuntu

Metoda 1 — ssh-copy-id (zalecana):

 $ ssh-copy-id username@remote_host

Wprowadź hasło, gdy pojawi się monit. Klucz publiczny zostanie dodany do ~/.ssh/authorized_keys na serwerze.

Metoda 2 — poprzez kanał SSH:

 cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

Metoda 3 — ręczna: Wyświetl swój klucz publiczny poleceniem cat ~/.ssh/id_rsa.pub , a następnie dołącz jego dane wyjściowe do ~/.ssh/authorized_keys na serwerze zdalnym.

3

Uwierzytelnianie za pomocą kluczy SSH

Sprawdź, czy uwierzytelnianie za pomocą klucza działa, łącząc się ze swoim serwerem:

 $ ssh username@remote_host

Jeśli ustawiłeś hasło w kroku 1, zostaniesz poproszony o jego podanie. Jeśli tego nie zrobiłeś, zalogujesz się natychmiast, bez pytania o hasło.

4

Wyłącz uwierzytelnianie hasłem (opcjonalnie)

Po potwierdzeniu, że logowanie za pomocą klucza działa, możesz wyłączyć uwierzytelnianie hasłem, aby zabezpieczyć serwer przed atakami siłowymi. Otwórz konfigurację demona SSH:

 sudo nano /etc/ssh/sshd_config

Znajdź PasswordAuthentication , w razie potrzeby usuń komentarz z wiersza i ustaw go na no :

 PasswordAuthentication no

W obecnych wersjach Ubuntu sshd_config kończy się wierszem Include /etc/ssh/sshd_config.d/*.conf , a plik w tym katalogu może nadpisać to, co właśnie ustawiłeś. Jeśli zmiana nie zostanie wprowadzona, sprawdź, czy w pliku /etc/ssh/sshd_config.d/ znajduje się wartość PasswordAuthentication yes i edytuj go tam.

Zapisz plik ( Ctrl+X , następnie Y , a następnie Enter ) i uruchom ponownie SSH:

 $ sudo systemctl restart ssh

Otwórz nowy terminal i sprawdź, czy nadal możesz nawiązać połączenie, zanim zamkniesz bieżącą sesję.

Często zadawane pytania

Często zadawane pytania dotyczące konfiguracji uwierzytelniania za pomocą klucza SSH w systemie Ubuntu.

Jaka jest różnica pomiędzy kluczem publicznym i kluczem prywatnym?

Klucz publiczny ( id_rsa.pub ) jest umieszczany na serwerach, do których chcesz uzyskać dostęp — można go bezpiecznie udostępniać. Klucz prywatny ( id_rsa ) pozostaje na Twoim komputerze lokalnym i nigdy nie wolno go udostępniać. Oba klucze działają razem, aby uwierzytelnić Cię bez hasła.

Czy powinienem ustawić hasło dla mojego klucza prywatnego?

Tak, zdecydowanie zalecamy użycie hasła. Dodaje ono dodatkową warstwę ochrony, dzięki czemu w przypadku kradzieży pliku z kluczem prywatnym, nie będzie można go użyć bez hasła. Użyj ssh-agent do buforowania hasła, aby nie trzeba było go wpisywać za każdym razem.

Co się stanie, jeśli zablokuję sobie dostęp, wyłączając uwierzytelnianie hasłem?

Jeśli wyłączysz uwierzytelnianie hasłem przed potwierdzeniem działania klucza, możesz utracić dostęp. Zawsze otwieraj nowy terminal i przetestuj logowanie kluczem SSH przed zamknięciem bieżącej sesji. Jeśli nie masz dostępu do konta, będziesz potrzebować dostępu do konsoli (np. przez panel internetowy dostawcy serwera), aby ponownie włączyć uwierzytelnianie hasłem.

Które wersje Ubuntu obejmuje ten przewodnik?

Wszystkie. Kroki są takie same w Ubuntu 24.04 i 26.04 LTS oraz w starszych wersjach, takich jak 20.04 i 22.04. Jedyną różnicą może być nazwa usługi SSH — użyj sudo systemctl restart sshd jeśli ssh nie działa. Te same polecenia działają również w systemach Debian, AlmaLinux i Rocky Linux.

Potrzebujesz serwera do wdrożenia?

Nasze plany serwerów dedykowanych obejmują pełny dostęp do roota, dysk SSD i całodobowe wsparcie ekspertów, dzięki czemu możesz szybko rozpocząć pracę.