Jak włączyć logowanie root SSH w systemie Linux za pomocą kluczy SSH

Włącz logowanie SSH użytkownika root za pomocą klucza publicznego, dodając go do pliku root authorized_keys, ustawiając go , weryfikując konfigurację OpenSSH i przeładowując usługę. Umożliwi to użytkownikowi root logowanie się za pomocą klucza, blokując jednocześnie hasło i uwierzytelnianie interaktywne z klawiaturą. Definicje opcji PermitRootLogin prohibit-passwordznajdziesz w podręczniku OpenSSH sshd_config .

Terminal łączący się z serwerem Linux jako konto administratora przez SSH
Ilustracja terminala przedstawia monit o zaufanie; przed zaakceptowaniem odcisku palca hosta należy go zweryfikować za pomocą zaufanego kanału.

Bezpośredni dostęp do roota daje akceptowany klucz i nieograniczoną kontrolę. Używaj go tylko w systemie, którym administrujesz, najlepiej za siecią prywatną lub zaporą sieciową. W przypadku rutynowych zadań zaloguj się jako nazwany użytkownik i użyj sudo. Pozostaw bieżącą sesję otwartą i upewnij się, że masz inną ścieżkę odzyskiwania przed zmianą ustawień zdalnego SSH.

Przed edycją serwera SSH

  • Połącz się z kontem, na którym można uruchomić program sudoi sprawdź, czy serwer OpenSSH jest uruchomiony.
  • Przygotuj parę kluczy SSH klienta. Skopiuj klucz publiczny (zazwyczaj plik z końcówką .pub); nigdy nie udostępniaj klucza prywatnego.

Nie ustawiaj hasła root wyłącznie dla SSH opartego na kluczu. Zablokowane hasło i dostęp za pomocą klucza publicznego to oddzielne elementy, chociaż zasady dotyczące kont dystrybucyjnych mogą wpływać na logowanie. W podręczniku zarządzania użytkownikami Ubuntu wyjaśniono, że samo zablokowanie hasła nie wyłącza dostępu do istniejącego klucza SSH.

Włącz logowanie SSH oparte na kluczu głównym

1. Połącz się jako zwykły administrator

Z poziomu terminala klienta połącz się z kontem, które ma już uprawnienia sudo:

ssh admin@server.example.com

Zastąp przykładowe wartości. Zweryfikuj nowy odcisk klucza hosta za pomocą zaufanego kanału przed jego zaakceptowaniem.

2. Dodaj swój klucz publiczny do konta roota

Na serwerze utwórz katalog SSH użytkownika root z ograniczonymi uprawnieniami, a następnie edytuj listę autoryzowanych kluczy:

sudo install -d -m 700 /root/.ssh
sudoedit /root/.ssh/authorized_keys

Wklej cały klucz publiczny w jednym wierszu i zapisz. Nigdy nie wklejaj klucza prywatnego i zachowaj wszystkie istniejące wpisy. Następnie ogranicz prawa własności i uprawnienia:

sudo chown -R root:root /root/.ssh
sudo chmod 700 /root/.ssh
sudo chmod 600 /root/.ssh/authorized_keys
Edytor terminala otwiera plik authorized_keys użytkownika root po utworzeniu katalogu SSH użytkownika root
Dodaj cały klucz publiczny jako jedną linię w pliku author_keys użytkownika root. Pokazany tutaj skrócony klucz jest jedynie wizualnym symbolem zastępczym.

3. Ustaw zasady logowania roota

Otwórz konfigurację serwera za pomocą edytora, na przykład:

sudoedit /etc/ssh/sshd_config

Znajdź dyrektywę active PermitRootLogini zmień ją na:

PermitRootLogin prohibit-password

Jest to bezpieczniejsze niż PermitRootLogin yes, które może zezwalać na hasła roota. Nie dodawaj duplikatu dyrektywy: OpenSSH używa pierwszej uzyskanej wartości, a dystrybucje mogą ładować Includepliki. Edytuj aktywne ustawienie i pozostaw niezwiązane z nim opcje uwierzytelniania bez zmian.

Konfiguracja serwera OpenSSH pokazująca PermitRootLogin ustawiony na prohibit-password
Podświetlony wiersz kontroluje root; pozostałe pokazane opcje uwierzytelniania to osobne ustawienia i powinny być zgodne z Twoją polityką.

4. Sprawdź poprawność konfiguracji przed jej zastosowaniem

Najpierw sprawdź, czy nie ma błędów składniowych:

sudo sshd -t

Brak wyniku oznacza, że ​​sprawdzenie składni przebiegło pomyślnie. Napraw wszelkie zgłoszone błędy przed ponownym załadowaniem. Sprawdź wartość efektywną za pomocą:

sudo sshd -T | grep permitrootlogin

Sprawdź, czy na wyjściu jest napisane permitrootlogin prohibit-password. Jeśli nie, sprawdź dołączone pliki i odpowiednie Matchbloki. Podręcznik sshd definiuje to -tjako sprawdzenie składni i -Traport o efektywnej konfiguracji.

Terminal uruchamiający walidację konfiguracji sshd i drukujący efektywną wartość PermitRootLogin
Przed zastosowaniem zmian uruchom polecenie sshd -t, a następnie sprawdź efektywne ustawienia logowania użytkownika root.

5. Załaduj ponownie usługę SSH

Użyj nazwy usługi swojej dystrybucji. Ubuntu i Debian powszechnie używają:

sudo systemctl reload ssh.service

Fedora, RHEL i wiele innych dystrybucji powszechnie używają:

sudo systemctl reload sshd.service

Jeśli przeładowanie nie jest obsługiwane, użyj systemctl restartodpowiedniej nazwy usługi i zachowaj otwartą oryginalną sesję. Podręcznik OpenSSH Ubuntu również zaleca uruchomienie sshd -tprzed ponownym uruchomieniem.

Terminal Linux ponownie ładujący usługę OpenSSH w systemie Ubuntu lub Debian
Po zakończeniu kontroli składni konfiguracji należy ponownie załadować demona SSH. Nazwy usług różnią się w zależności od dystrybucji.

6. Przetestuj dostęp do roota z drugiego terminala

Otwórz osobny terminal na kliencie i podaj klucz prywatny, który odpowiada zainstalowanemu kluczowi publicznemu:

ssh -i ~/.ssh/id_ed25519 root@server.example.com

Zmień ścieżkę klucza i nazwę hosta. Sprawdź wszystkie monity dotyczące klucza hosta i potwierdź, że sesja otwiera się jako root. Jeśli test się nie powiedzie, rozwiąż problem z oryginalnej sesji i pozostaw ją otwartą do czasu przywrócenia dostępu.

Drugi terminal pomyślnie otworzył sesję SSH z kontem głównym
Przed zamknięciem sesji administratora przeprowadź test na nowym terminalu klienckim, używając pasującego klucza prywatnego.

Rozwiązywanie problemów z odmową logowania root

W przypadku Permission denied (publickey), sprawdź, czy pełny klucz publiczny jest wpisany /root/.ssh/authorized_keysi czy klient używa pasującego klucza prywatnego. Sprawdź ponownie właściciela i uprawnienia:

sudo chown -R root:root /root/.ssh
sudo chmod 700 /root/.ssh
sudo chmod 600 /root/.ssh/authorized_keys

Sprawdź również wartość skuteczną PermitRootLogin, reguły AllowUsers/ DenyUsers, logi serwera i powłokę logowania roota. Unikaj zmiany tego ustawienia na yesskrót, ponieważ może to rozszerzyć zakres dozwolonych metod uwierzytelniania roota.

Terminal Linux korygujący własność i ograniczone uprawnienia plików kluczy SSH root
Właścicielem katalogu SSH użytkownika root powinien być użytkownik root, z uprawnieniami 700 dla katalogu i 600 dla author_keys.

Wyłącz logowanie SSH z uprawnieniami roota, jeśli już go nie potrzebujesz

Aby wyłączyć bezpośredni dostęp roota do SSH, zmień dyrektywę active na:

PermitRootLogin no

Uruchom sudo sshd -ti przeładuj odpowiednią usługę. To zablokuje bezpośrednie połączenie SSH z rootem, pozostawiając jednocześnie dostępne konto administratora. Samo zablokowanie hasła może nie wyłączyć logowania za pomocą klucza publicznego roota.

Konfiguracja serwera OpenSSH ustawiona na PermitRootLogin no, po której następują polecenia walidacji i ponownego ładowania usługi
Ustaw PermitRootLogin na „nie”, zatwierdź i przeładuj. Pozostałe wyświetlane opcje uwierzytelniania są oddzielne i nie są wymagane w przypadku tej zmiany tylko dla konta root.

Więcej szczegółów znajdziesz w podręczniku konfiguracji OpenSSH i dokumentacji Ubuntu Server SSH.

Zostaw komentarz

Jak zainstalować motyw Paper GTK w systemie Linux

Jak zainstalować motyw Paper GTK w systemie Linux

Zainstaluj motyw Paper GTK z obsługiwanych repozytoriów systemu Linux, włącz go dla aplikacji GTK w GNOME Tweaks i zobacz, co starszy motyw może, a czego nie może zmienić.

Jak zainstalować środowisko graficzne UKUI w systemie Linux

Jak zainstalować środowisko graficzne UKUI w systemie Linux

Zainstaluj UKUI z oficjalnego archiwum Ubuntu, zapoznaj się z aktualną ścieżką pakietów Testing w Debianie i unikaj przestarzałych instrukcji Arch, które nie instalują już pełnego pulpitu.

Jak zainstalować Inkscape na Linuksie: Ubuntu, Fedora, Arch i inne

Jak zainstalować Inkscape na Linuksie: Ubuntu, Fedora, Arch i inne

Zainstaluj Inkscape z repozytoriów swojej dystrybucji Linuxa, stabilnej wersji PPA Ubuntu, Snap lub Flathub, korzystając z bieżących poleceń i uwag dotyczących wyboru źródła pakietu.

Jak zainstalować SABnzbd w systemie Linux i go skonfigurować

Jak zainstalować SABnzbd w systemie Linux i go skonfigurować

Zainstaluj SABnzbd na Ubuntu lub Debianie albo uruchom go w Dockerze na innym hoście z Linuksem. Następnie otwórz interfejs webowy i skonfiguruj dostawcę oraz foldery pobierania.

Jak zresetować zapomniane hasło w systemie Linux

Jak zresetować zapomniane hasło w systemie Linux

Odzyskaj dostęp do lokalnego konta Linux z uprawnieniami drugiego administratora lub w trybie odzyskiwania Ubuntu i dowiedz się, czego nie można odblokować poprzez zresetowanie hasła.

Jak nagrywać dźwięk z głośnika w systemie Linux za pomocą programu Audacity

Jak nagrywać dźwięk z głośnika w systemie Linux za pomocą programu Audacity

Przechwytuj dźwięk z pulpitu Linuksa w Audacity, kierując strumień nagrywania do źródła monitora urządzenia wyjściowego. Postępuj zgodnie z instrukcjami PulseAudio i PipeWire, wskazówkami dotyczącymi eksportu i poprawkami dla ścieżek cichych.

Jak korzystać z Dropboxa w systemie Linux: Zainstaluj i synchronizuj pliki

Jak korzystać z Dropboxa w systemie Linux: Zainstaluj i synchronizuj pliki

Zainstaluj Dropbox na Linuksie z oficjalnego pakietu, zaloguj się, zsynchronizuj folder lokalny, zarządzaj selektywną synchronizacją i sprawdzaj status z wiersza poleceń.

Jak zainstalować klienta poczty Hiri w systemie Linux

Jak zainstalować klienta poczty Hiri w systemie Linux

Zainstaluj Hiri na Linuksie za pomocą pakietu Snap lub oficjalnego archiwum tarball, dodaj program uruchamiający pulpit i sprawdź obsługiwane konta, a także ostrzeżenie dotyczące starej wersji Snap Hiri.

Jak uzyskać specyfikacje systemowe dla komputera z systemem Linux

Jak uzyskać specyfikacje systemowe dla komputera z systemem Linux

Sprawdź dystrybucję, jądro, procesor, pamięć, grafikę, pamięć masową i podłączone urządzenia za pomocą narzędzia Fastfetch i wbudowanych poleceń systemu Linux, a następnie zapisz przejrzysty raport.

Jak zainstalować i skonfigurować Plex na OpenMediaVault z Compose

Jak zainstalować i skonfigurować Plex na OpenMediaVault z Compose

Stara wtyczka OpenMediaVault Plex została zarchiwizowana. Skonfiguruj Plex na OMV 8 z OMV-Extras, wtyczką Compose, trwałym magazynem danych i oficjalnym kontenerem Plex.