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

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

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

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

  • Установлен OpenSSH на Mint 17, но он, похоже, не работает
  • Скопируйте файл sql через ssh с акцентами
  • В чем разница между пересылкой X11 с помощью `ssh -X hostname и xhost + hostname; ssh hostname`?
  • Одиночная команда для входа в SSH и запуска программы?
  • Есть ли способ иметь регулярное выражение в ~ / .ssh / config
  • Использовать только mtime-сравнение с rsync?
  • Ожидание запуска скрипта через ssh до перехода в сценарий bash
  • git не использует глобальный файл конфигурации или открытый ключ
  • 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, независимо от метода проверки подлинности.

    Linux и Unix - лучшая ОС в мире.