Bezpieczna konfiguracja SSH
Poznasz podstawowe opcje konfiguracji serwera SSH, sposób bezpiecznego testowania zmian oraz praktyczne znaczenie logowania kluczami zamiast hasłem.
Wróć do listy lekcji1. Krótka teoria
OpenSSH Server pozwala administratorowi zdalnie logować się do systemu, dlatego jego konfiguracja ma duży wpływ na bezpieczeństwo serwera. Główny plik konfiguracyjny to /etc/ssh/sshd_config. Przed zmianami warto mieć aktywną drugą sesję SSH albo dostęp konsolowy, aby nie odciąć sobie dostępu przez błędną konfigurację. Bezpieczna praca zaczyna się od edycji przez sudoedit, sprawdzenia składni poleceniem sshd -t, a dopiero potem restartu usługi. Opcja PermitRootLogin kontroluje logowanie bezpośrednio na konto root. W typowej administracji lepiej używać zwykłego użytkownika i sudo, bo daje to lepszą kontrolę i ślad działań. PasswordAuthentication decyduje, czy serwer przyjmuje logowanie hasłem. Gdy działa logowanie kluczami, wyłączenie haseł ogranicza skuteczność zgadywania haseł przez Internet. PubkeyAuthentication odpowiada za logowanie kluczami publicznymi. Po każdej zmianie należy sprawdzić status usługi i wykonać test logowania w nowej sesji, zanim zamknie się dotychczasowe połączenie.
2. Przykłady komend
sudoedit /etc/ssh/sshd_config
Bezpiecznie otwiera główny plik konfiguracji serwera SSH do edycji.
$ sudoedit /etc/ssh/sshd_config
sudo sshd -t
Sprawdza składnię konfiguracji sshd bez restartowania usługi.
$ sudo sshd -t
sudo systemctl restart sshd
Restartuje usługę SSH po poprawnym sprawdzeniu konfiguracji.
$ sudo systemctl restart sshd
sudo systemctl status sshd
Pokazuje bieżący stan usługi sshd i ostatnie komunikaty.
$ sudo systemctl status sshd
sudo journalctl -u sshd -n 50
Wyświetla ostatnie wpisy logów usługi sshd.
$ sudo journalctl -u sshd -n 50
ssh user@example.com
Testuje logowanie do serwera po zmianie konfiguracji.
$ ssh user@example.com
3. Zadanie praktyczne
/etc/ssh/sshd_config przez sudoedit /etc/ssh/sshd_config i odszukaj opcje PermitRootLogin, PasswordAuthentication oraz PubkeyAuthentication. Nie zmieniaj ich na serwerze produkcyjnym bez planu dostępu awaryjnego. W labie ustaw bezpieczne wartości, sprawdź składnię przez sudo sshd -t, zrestartuj usługę poleceniem sudo systemctl restart sshd i potwierdź stan przez sudo systemctl status sshd. Przed zamknięciem starej sesji wykonaj nowe połączenie testowe.
4. Typowe błędy
- Restartowanie sshd bez wcześniejszego sprawdzenia konfiguracji przez sshd -t.
- Zamykanie jedynej aktywnej sesji SSH przed testem nowego logowania.
- Pozostawianie logowania hasłem mimo poprawnie działających kluczy SSH.
- Dopuszczanie bezpośredniego logowania root do codziennej administracji.
- Mylenie konfiguracji klienta SSH z konfiguracją serwera sshd.
- Wprowadzanie zmian produkcyjnych bez dostępu konsolowego lub planu awaryjnego.
5. Podsumowanie
Bezpieczna konfiguracja SSH polega na rozważnym ograniczaniu metod logowania i testowaniu każdej zmiany. PermitRootLogin, PasswordAuthentication i PubkeyAuthentication to podstawowe opcje, które warto rozumieć. Przed restartem używaj sshd -t, po restarcie sprawdzaj systemctl status sshd i zawsze testuj nowe połączenie przed zamknięciem starej sesji.