Разрешить root для входа через ssh только с аутентификацией на основе ключа

У меня есть некоторые сомнения относительно некоторых конфигураций ssh-сервера на /etc/ssh/sshd_config . Я хочу следующее поведение:

  1. Аутентификация открытого ключа – это единственный способ аутентификации как root (аутентификация без пароля)
  2. Обычные пользователи могут использовать как (пароль, так и аутентификацию с открытым ключом)

Если я установил PasswordAuthentication no моя первая точка не будет удовлетворена, но не вторая. Есть ли способ установить PasswordAuthentication no только для root?

3 Solutions collect form web for “Разрешить root для входа через ssh только с аутентификацией на основе ключа”

Вы можете сделать это, используя директиву PermitRootLogin . На sshd_config справки sshd_config :

Указывает, может ли root войти в систему, используя ssh (1). Аргумент должен быть «да», «без пароля», «принудительные команды только» или «нет». Значение по умолчанию – «да».

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

Следующее выполнит то, что вы хотите:

 PasswordAuthentication yes PermitRootLogin without-password 

Вы можете использовать блоки соответствия, чтобы настроить некоторые параметры для проверки подлинности каждого пользователя или группы или для каждого IP-адреса или имени узла происхождения соединения.

 PasswordAuthentication yes PermitRootLogin yes Match User root PasswordAuthentication no 

У меня есть еще более ограничительный подход для предоставления привилегий root на моем сервере, которые могут быть интересны для таких же параноидов, как я. Будьте осторожны, что вы делаете и в каком порядке, иначе вы можете получить систему, к которой вы не можете получить доступ root.

  • Создайте определенную группу sugroup , sugroup будет разрешено стать root и разрешить только проверку подлинности для этой группы, поместив следующие строки в конец sshd_confid:

Match Group sugroup

PasswordAuthentication no

  • Поместите команду auth required pam_wheel.so group=sugroup в /etc/pam.d/su . Возможно, он уже существует, и вам просто нужно раскомментировать его. Это запрещает root доступ ко всем пользователям, не являющимся членами sugroup
  • Выберите мощный пароль root 🙂
  • Проверьте, работает ли ваш новый метод аутентификации, и только если:
  • Запретить прямой вход root через ssh с помощью PermitRootLogin no в /etc/ssh/sshd_config .

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

  • Как включить обмен ключами diffie-hellman-group1-sha1 на Debian 8.0?
  • Как запустить скрипт на удаленной машине с помощью команды экрана и ssh?
  • Где хранится пароль для аутентификации ssh?
  • SSH - packet_write_wait сломанный трубопровод
  • Открыть экранный процесс в терминале из сценария
  • Какая команда очистить ошибку «ИДЕНТИФИКАЦИЯ ДИСТАНЦИОННОГО ХОЗЯИНА ИЗМЕНЕНА!»
  • Почему я могу войти в систему через SSH (PAM Auth), в то время как `shutdown -k` активен?
  • Можете ли вы установить Linux на Raspberry Pi без необходимости использования HDMI-дисплея?
  • Запуск команд в удаленном Linux
  • команда wrapper для sshd_config?
  • Может ли ssh (агент) работать с двумя отдельными идентификаторами?
  • SFTP, SSH Не удалось прочитать пакет: Сброс соединения с помощью peer
  • Linux и Unix - лучшая ОС в мире.