Как отключить удаленный вход по SSH как root с сервера?

54

В целях безопасности моя компания хочет, чтобы я не позволял кому-либо иметь возможность входить на наш сервер Ubuntu как root удаленно через SSH. Мы по-прежнему хотим, чтобы корневая учетная запись существовала, но мы не хотим, чтобы она могла входить удаленно. Как бы я это сделал?

Заранее большое спасибо за ваше время.

Роб С.
источник

Ответы:

85

Я полагаю, вы имели в виду вход через SSH? Поместите следующую строку в /etc/ssh/sshd_config:

PermitRootLogin no

Если вы хотите запретить некоторым пользователям вход в систему, укажите это в файле конфигурации:

DenyUsers root

Это использует черный список. Белый список, как правило, предпочтительнее. Если вашей компании необходимо разрешить вход robи adminпользователям на сервере, используйте следующую директиву конфигурации:

AllowUsers rob admin

После внесения изменений в файл конфигурации перезапустите службу ssh с помощью команды:

sudo service ssh restart

Смотрите также страницу руководства .

Lekensteyn
источник
14
и sudo service ssh restartвступить в силу
Максим Ефремов
Я не вижу файл sshd_config, я вижу этот файл / etc / ssh / ssh_config.
Чинмайя Б
@ChinmayaB Возможно, вы не установили сервер OpenSSH. Попробуйsudo apt-get install openssh-server
Лекенштейн
14

Отредактируйте файл /etc/ssh/sshd_config, ищите

PermitRootLogin

и установите его в no.

Джеймс Литтл
источник
Если вы сделаете это без добавления каких-либо пользователей AllowUsers <username>, разве это не позволит никому войти в SSH?
JGlass
1
@JGlass Возможно, вы связываете этот ответ с ответом выше, у которого есть дополнительные опции - эта конкретная строка запрещает входу root только через SSH. Если в системе есть другие пользователи, при прочих равных условиях, они все равно смогут войти через SSH, если только вы не будете входить в DenyUsersсистему.
Армададрив
@armadadrive - ааа, спасибо за исправление и объяснение!
JGlass
5

Конфигурация по умолчанию предусматривает блокировку учетной записи root, поэтому вы не можете войти в систему как root удаленно. Вам не нужно ничего делать, если только вы не хотите убедиться, что не можете войти в систему как root удаленно, используя ключ RSA. Конечно, если вы не хотите этого делать, просто не устанавливайте корневой ключ.

psusi
источник
1
Это не было по умолчанию для моей машины Linode Ubuntu 14.04. PermitRootLoginбыл установлен yesи не было AllowUsersили DenyUsersконфигурация линии. Если я что-то не упустил, я не думаю, что можно с уверенностью предположить, что он заблокирован по умолчанию
andrewtweber
@andrewtweber, вход в систему root не запрещен через конфигурацию ssh, но общесистемный, установив для пароля root недопустимое значение, которое вы не можете ввести. Таким образом, как я уже сказал, вы все равно можете войти в систему как root с помощью ключа RSA, но не с паролем.
Псуси
Хорошо, спасибо, можете ли вы добавить это объяснение к своему ответу, и тогда я смогу удалить свое пониженное голосование
andrewtweber
@andrewtweber, это уже в моем ответе ..
psusi
Ваше объяснение о том, как заблокирована учетная запись root, отсутствует в вашем ответе. В любом случае, я не могу удалить понижающее голосование, если ваш ответ не отредактирован, так что продолжайте и будьте упрямы, если хотите
andrewtweber