Wstecz Wstecz

Jak włączyć logowanie root na serwerze Linux

Na większości serwerów Linux bezpośrednie logowanie jako root przez SSH i SFTP jest domyślnie wyłączone. W tym poradniku dowiesz się, jak je włączyć, gdy jest potrzebne, i jak ponownie wyłączyć.

Czego potrzebujesz przed rozpoczęciem

Oceń ryzyko

Użytkownik root ma nieograniczone uprawnienia, a jego nazwę znają wszystkie boty, które ciągle próbują odgadnąć hasła. Włączaj logowanie root tylko wtedy, gdy naprawdę jest potrzebne, używaj silnego hasła i po zakończeniu pracy wyłącz je ponownie.

Ustawienie logowania root

  1. Połącz się z serwerem

    Połącz się z serwerem przez SSH jako swój zwykły użytkownik.

  2. Ustaw hasło root

    W Ubuntu hasło root nie jest domyślnie ustawione, więc logowanie by się nie powiodło. Ustaw je komendą:

    sudo passwd root

    Wpisz nowe hasło dwa razy. Podczas pisania znaki nie są wyświetlane, to normalne. Jeśli root ma już hasło, pomiń ten krok.

  3. Otwórz plik konfiguracyjny SSH

    Otwórz plik w edytorze:

    sudo nano /etc/ssh/sshd_config

    Naciśnij Ctrl + W i wyszukaj PermitRootLogin. Linia zwykle wygląda tak:

    #PermitRootLogin prohibit-password
  4. Zmień ustawienie PermitRootLogin

    Usuń # na początku linii i zmień wartość:

    PermitRootLogin yes
    Jak zapisać

    Ctrl + O i Enter zapisuje plik, Ctrl + X zamyka edytor.

    Na niektórych serwerach, np. Ubuntu, ustawienia mogą być nadpisywane przez pliki w /etc/ssh/sshd_config.d/. Sprawdź, czy nie ma tam innej wartości PermitRootLogin:

    sudo grep -ri permitrootlogin /etc/ssh/sshd_config.d/
  5. Sprawdź konfigurację i zrestartuj SSH

    Najpierw sprawdź, czy w pliku nie ma błędów. Jeśli komenda nic nie wyświetli, wszystko jest w porządku:

    sudo sshd -t

    Następnie zrestartuj usługę SSH. Komenda zależy od systemu:

    sudo systemctl restart ssh
    Nie zamykaj bieżącego okna

    Dopóki nie upewnisz się, że nowe logowanie działa, zostaw bieżącą sesję SSH otwartą. Jeśli coś pójdzie nie tak, cofniesz przez nią zmiany.

Czy się udało?

Sprawdź, jakiej wartości PermitRootLogin SSH faktycznie używa:

sudo sshd -T | grep permitrootlogin

Następnie w nowym oknie spróbuj zalogować się jako root, zastępując ip_serwera adresem IP swojego serwera:

ssh root@ip_serwera

Częste pytania

Przy logowaniu jako root pojawia się „Access denied”

Sprawdź, czy ustawiłeś hasło root (krok 2) i czy w plikach w /etc/ssh/sshd_config.d/ nie ma linii PermitRootLogin lub PasswordAuthentication no, które nadpisują twoje ustawienie.

Błąd „Unit sshd.service not found”

W Ubuntu i Debian usługa SSH nazywa się ssh. Użyj komendy sudo systemctl restart ssh.

Czy jest bezpieczniejszy sposób?

Tak. Ustaw PermitRootLogin prohibit-password i loguj się kluczem SSH zamiast hasłem. Jeszcze lepiej pracować na osobnym użytkowniku i używać sudo.

Czy to ustawienie dotyczy też SFTP?

Tak. SFTP korzysta z tej samej usługi SSH, więc logowanie root przez WinSCP lub FileZilla działa według tego samego ustawienia.

Co dalej

Jeśli masz problemy, napisz do nas na czacie na żywo lub e-mailem.

Podobne poradniki

VPS Poradniki