У вас есть несколько вариантов. В этом ответе я собираюсь предположить, что вы определили sudoers
группу.
Взгляните на sshd_config
страницу руководства и найдите Match
директиву. Это позволяет вам указывать блоки конфигурации, которые применяются только к подмножеству ваших соединений ssh. Вы можете сделать что-то вроде этого:
Match Group sudoers
PasswordAuthentication no
ChallengeResponseAuthentication no
Теоретически вы могли бы выполнить нечто подобное с конфигурацией PAM, которая просто провалила бы попытки аутентификации людьми в sudoers
группе. Вероятно, это будет связано с модулем pam_succeed_if ... вы можете добавить что-то вроде этого в вашу auth
конфигурацию для sshd:
auth requisite pam_succeed_if.so user notingroup sudoers quiet
Это означает, что только пользователи, не входящие в sudoers
группу, могут выполнять аутентификацию через PAM. Обратите внимание, что это не проверено. Вы также можете использовать
модуль pam_listfile, чтобы сделать что-то подобное.
Другой возможный ответ, как и @larsks, ответ не работает для моей версии ,
ssh_d
как моя версия , похоже, использует документация нашла здесь , которая гласит:Этот список ключевых слов , не включает в себя:
ChallengeResponseAuthentication
.Очень интересный способ, который я нашел, это использовать
AuthenticationMethods
который в вашем случае будет работать так:AuthenticationMethods
принимает список значений, разделенных запятыми, которые представляют серию методов, которые пользователь должен пройти, прежде чем получить доступ к серверу.AuthenticationMethods 'publickey,password'
заставит пользователя пройти с открытым ключом и затем паролем.Чтобы узнать больше
man sshd_config
.источник