Комбинация аутентификации ключа SSH и двухфакторной аутентификации
Мне было интересно, возможно ли сделать следующее одновременно:
- Отключить root-логины
- Включить SSH-вход для личного пользователя, только через SSH-ключи
- Включить вход по SSH для непривилегированного пользователя, только с парольной аутентификацией и двухфакторной аутентификацией
С использованием Match
блокировать в sshd_config
Я смог настроить это так, чтобы в целом PasswordAuthentication
был отключен, за исключением непривилегированного пользователя (давайте назовем его peon
). Ключи SSH были необходимы для входа в систему для личного пользователя (который имеет возможности sudo).
Однако, когда я пытаюсь включить двухфакторную аутентификацию (pam_google_authenticator
) Я должен включить ChallengeResponseAuthentication
который, кажется, не работает в Match
блокировать, и поэтому снова включает аутентификацию по паролю для всех.
Есть ли способ сделать это? Я не слишком хорош в таких вещах, поэтому подробные объяснения были бы очень полезны.
Спасибо!
1 ответ
Последние версии openssh
включить AuthenticationMethods
опция:
Debian поддерживает openssh-6.2
Некоторое время назад, поэтому я ожидаю, что это будет доступно и на Распбиане.
Определяет методы аутентификации, которые должны быть успешно завершены, чтобы пользователю был предоставлен доступ.
Вы можете иметь основной блок вашего sshd_config
с ChallengeResponseAuthentication
включено:
ChallengeResponseAuthentication yes
PasswordAuthentication no
PermitRootLogin no
а затем использовать AuthenticationMethods
в вашем Match
блоки (использовать Group
соответствие вместо User
соответствие для облегчения масштабируемости):
Match Group personal
AuthenticationMethods publickey
Match Group peon
PasswordAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
Кроме того, вы можете использовать pam_succeed_if(8)
запустить двухфакторную аутентификацию, только если это требуется для соответствующей группы:
auth required pam_succeed_if.so quiet user ingroup peon