CH-J Server ManagerZarządzanie serwerem przez SSH
Menu
Wszystkie poradniki i artykuły →

Użytkownicy SSH i dostęp root: bezpieczna konfiguracja w systemie Linux

Utwórz konto administratora, zainstaluj jego klucz, sprawdź sudo i dopiero potem ogranicz logowanie root, nie tracąc dostępu.

Cel i kolejność działań

Administratorzy powinni logować się na własne konta za pomocą kluczy i w razie potrzeby korzystać z sudo, ponieważ pozostawia to zapis, kto co zrobił, i ogranicza próby odgadywania haseł. Kolejność ma znaczenie: najpierw uruchom nowy dostęp, sprawdź go i dopiero na końcu ogranicz root. Zachowaj dostęp do konsoli dostawcy na wypadek problemów.

Utwórz konto i zainstaluj klucz

Utwórz konto, dodaj jego klucz publiczny i ustaw restrykcyjne uprawnienia, ponieważ sshd ignoruje pliki kluczy, do których inni mogą zapisywać. Nigdy nie kopiuj klucza prywatnego na serwer. W systemach z rodziny Red Hat użyj grupy wheel zamiast sudo.

sudo adduser admin1
sudo usermod -aG sudo admin1
sudo install -d -m 700 -o admin1 -g admin1 /home/admin1/.ssh
sudo install -m 600 -o admin1 -g admin1 ~/admin1.pub /home/admin1/.ssh/authorized_keys

Sprawdź w drugim oknie

Pozostaw bieżącą sesję otwartą i przetestuj nowe logowanie z innego terminala. Samo członkostwo w grupie nie dowodzi, że sudo działa, ponieważ decydują o tym reguły w sudoers. Potwierdź to poleceniem sudo -l.

ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 admin1@server.example
sudo -l
sudo -v

Ogranicz logowanie root

PermitRootLogin prohibit-password pozwala na logowanie root tylko z kluczem, a no całkowicie blokuje root przez SSH. Umieść zmianę w osobnym pliku w /etc/ssh/sshd_config.d. Dla większości opcji sshd używa pierwszej znalezionej wartości, więc wcześniejszy plik może mieć pierwszeństwo. Dlatego sprawdź rzeczywistą wartość poleceniem sshd -T zamiast czytać pliki. Przetestuj nowe logowanie, zanim zamkniesz starą sesję.

echo 'PermitRootLogin no' | sudo tee /etc/ssh/sshd_config.d/50-root.conf
sudo sshd -t
sudo systemctl reload ssh
sudo sshd -T | grep -iE '^(permitrootlogin|passwordauthentication) '

Logowanie hasłem i czego unikać

Wyłącz PasswordAuthentication dopiero wtedy, gdy każde potrzebne konto ma sprawdzony klucz. Unikaj współdzielenia jednego konta przez kilka osób, ponieważ nie można wtedy odebrać dostępu jednej osobie bez wpływu na pozostałe. sudo bez hasła dla całego konta oznacza też, że sam skradziony klucz daje pełną kontrolę.

Konta w CH-J Server Manager

Moduł Users zarządza kontami, grupami, kluczami SSH i dostępem SSH przez aktywną sesję SSH. Nigdy nie zmienia sudoers ani nie ustawia NOPASSWD, a rzeczywisty stan sudo podaje na podstawie sudo -l. Konta root nie można usunąć, a zezwolenie na logowanie root hasłem wymaga dodatkowego potwierdzenia; zalecaną opcją jest Tylko klucz. Zmiana dostępu SSH jest weryfikowana za pomocą sshd -T i nowego logowania SSH, a poprzednia konfiguracja wraca automatycznie, jeśli sprawdzenie się nie powiedzie lub groziłaby utrata dostępu. Bez sudo moduł działa tylko do odczytu.

Dokumentacja szczegółowa

OpenSSH: sshd_config →

man: sudoers →

Biometryczne odblokowanie i bezpieczeństwo →