Многие учебные пособия говорят вам настроить ваш ssh-сервер следующим образом:
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no
но с этой настройкой вы не можете использовать PAM, так как я планирую использовать двухфакторную аутентификацию с Google Authenticator (OTP Onetime Password), мне нужен PAM.
Итак, как настроить свежий Debian Jessie SSH Deamon, если я хочу запретить вход с обычным паролем, но все же разрешить использовать PAM.
может быть, точный вопрос, как настроить PAM для запрета паролей?
Подробная информация об аутентификации PAM
Отключение аутентификации по паролю на основе PAM довольно не интуитивно понятно. Он необходим практически во всех дистрибутивах GNU / Linux (за исключением Slackware) вместе с FreeBSD. Если вы не будете осторожны, вы можете установить PasswordAuthentication на «no» и по-прежнему входить в систему только с паролем через PAM-аутентификацию. Оказывается, вам нужно установить «ChallengeResponseAuthentication» в «no», чтобы действительно отключить PAM-аутентификацию. Об этом говорится в справочных страницах FreeBSD, что может помочь немного прояснить ситуацию:
Обратите внимание, что если ChallengeResponseAuthentication имеет значение «yes», и политика аутентификации PAM для sshd включает pam_unix (8), аутентификация по паролю будет разрешена через механизм запроса-ответа независимо от значения PasswordAuthentication.
http://www.unixlore.net/articles/five-minutes-to-more-secure-ssh.html
ChallengeResponseAuthentication
нарушает метод интерактивной аутентификации с помощью клавиатуры, который необходим для модулей аутентификации PAM, которые обрабатывают OTP. (желательно для OP) Отключение CRA безопасно выполнять только в том случае, если в стеке действительно есть нулевые модули PAM,auth
которые необходимо запустить. ЕслиPasswordAuthentication
иGSSAPIAuthentication
отключены, пароль не будет принят, если PAM не имеет включенного модуля авторизации, который запрашивает его.запретить запрос пароля
прокомментировать эту строку
в /etc/pam.d/sshd
и убедитесь, что в конце этой строки не будет nullok, за исключением случаев, когда будет нормально проходить аутентификацию через ssh без использования OTP
источник