Jak wyłączyć zdalne logowanie SSH jako root z serwera?

54

Ze względów bezpieczeństwa moja firma chce, abym nie pozwalał nikomu na logowanie się do naszego serwera Ubuntu jako root zdalnie przez SSH. Nadal chcemy, aby konto root istniało, po prostu nie chcemy, aby można było się zalogować zdalnie. Jak mam to osiągnąć?

Z góry dziękuję za poświęcony czas.

Rob S.
źródło

Odpowiedzi:

85

Zakładam, że miałeś na myśli logowanie przez SSH? Umieść następujący wiersz w /etc/ssh/sshd_config:

PermitRootLogin no

Jeśli chcesz odmówić zalogowania się niektórym użytkownikom, umieść to w pliku konfiguracyjnym:

DenyUsers root

To podejście z czarnej listy. Zazwyczaj korzystna jest biała lista. Jeśli Twoja firma potrzebuje, aby umożliwić robi adminużytkownicy logują się na serwerze, należy użyć następującej dyrektywy konfiguracji:

AllowUsers rob admin

Po wprowadzeniu zmian w pliku konfiguracyjnym uruchom ponownie usługę ssh za pomocą polecenia:

sudo service ssh restart

Zobacz także stronę podręcznika .

Lekensteyn
źródło
14
i sudo service ssh restartwejść w życie
Maxim Yefremov
Nie widzę pliku sshd_config, widzę ten / etc / ssh / ssh_config.
Chinmaya B,
@ChinmayaB Prawdopodobnie nie zainstalowałeś serwera OpenSSH. Spróbujsudo apt-get install openssh-server
Lekensteyn,
14

Edytuj plik /etc/ssh/sshd_config, poszukaj

PermitRootLogin

i ustaw na no.

James Little
źródło
Jeśli zrobisz to bez dodawania użytkowników, AllowUsers <username>czy w efekcie nikt nie pozwoli na SSH?
JGlass
1
@JGlass Być może łączysz tę odpowiedź z powyższą, która ma dodatkowe opcje - ta konkretna linia blokuje tylko rootowanie przed zalogowaniem przez SSH. Jeśli w systemie są inni użytkownicy, przy czym wszystkie inne rzeczy będą sobie równe, nadal będą mogli logować się przez SSH, chyba że DenyUserste loginy również.
armadadrive
@armadadrive - ahh, dziękuję za korektę i wyjaśnienie!
JGlass,
5

Domyślną konfiguracją jest zablokowanie konta root, aby nie można było zalogować się jako root zdalnie. Nie musisz nic więcej robić, chyba że chcesz również upewnić się, że nie możesz zalogować się jako root za pomocą klucza RSA. Oczywiście, jeśli nie chcesz tego robić, po prostu nie konfiguruj klucza root.

psusi
źródło
1
To nie było domyślne dla mojej maszyny Linode Ubuntu 14.04. PermitRootLoginzostał ustawiony na yesi nie było linii AllowUsersani DenyUserslinii konfiguracji. Chyba że czegoś mi brakuje, nie sądzę, że można bezpiecznie założyć, że jest on domyślnie zablokowany
andrewtweber
@ andrewtweber, logowanie roota nie jest zabronione przez ssh config, ale w całym systemie poprzez ustawienie hasła root na niepoprawną wartość, której nie można wprowadzić. Tak więc, jak powiedziałem, nadal możesz ssh jako root za pomocą klucza RSA, ale nie z hasłem.
psusi
ok dzięki, czy możesz dodać to wyjaśnienie do swojej odpowiedzi, a następnie będę mógł usunąć moją opinię
andrewtweber
@andrewtweber, jest już w mojej odpowiedzi ..
psusi
twoje wyjaśnienie, w jaki sposób konto główne jest zablokowane, nie znajduje się w twojej odpowiedzi. W każdym razie nie mogę usunąć głosowania negatywnego, chyba że twoja odpowiedź zostanie zredagowana, więc śmiało bądź uparty, jeśli chcesz
andrewtweber 20.01.2017