Как ограничить вход по SSH root, но разрешить некоторые исключения

Как ограничить вход по SSH root, но разрешить некоторые исключения

В openssh можно ограничить вход root (PermitRootLogin no), но может ли быть исключение?

решение1

Учитывая, что вход в систему как root — не очень хорошая идея, взгляните на страницу руководства sshd:

PermitRootLogin

Указывает, может ли root войти в систему с помощью ssh(1). Аргумент должен быть ``yes'', ``without-password'', ``forced-commands-only'' или ``no''. Значение по умолчанию ``yes''.

Если для этого параметра установлено значение «без пароля», аутентификация по паролю для root отключена.

Если эта опция установлена ​​на ``forced-commands-only'', вход root с аутентификацией открытого ключа будет разрешен, но только если была указана опция команды (что может быть полезно для удаленного резервного копирования, даже если вход root обычно не разрешен). Все другие методы аутентификации отключены для root.

Если для этого параметра установлено значение «нет», пользователю root не разрешается входить в систему.

Таким образом, вы можете использовать его PermitRootLogin without-passwordдля разрешения аутентификации по закрытому/открытому ключу, запретив аутентификацию по паролю; или, может быть, PermitRootLogin forced-commands-onlyдля того, чтобы разрешить вам входить в систему как root, но без интерактивного доступа.

В последнем случае вам необходимо отредактировать authorized_keysфайл, чтобы указать, какая команда включена для пользователя ведения журнала, например так:

command="rdiff-backup --server" ssh-rsa AAAAB3NzaC1y... (rest of key)

или, что еще лучше, разрешить вход в систему root только с помощью принудительных команд только с определенного IP-адреса:

from="10.1.1.1",command="/home/user/command/to/execute" ssh-rsa AAAAB3NzaC1y... (rest of key)

Связанный контент