Назад | Перейти на главную страницу

Двухфакторная аутентификация для входа по паролю, но не для входа с использованием файлов ключей

Я настроил ssh для использования файлов ключей, расположенных в ~/.ssh чтобы залогиниться. Теперь я бы хотел установить двухфакторную аутентификацию при использовании пароля, но не требуется при использовании файлов ключей. Я видел, как установить двухфакторную аутентификацию здесь: DigitalOcean: как защитить SSH с помощью двухфакторной аутентификации.

Но это применимо как для входа по ключу, так и для входа по паролю, я бы хотел использовать его только для входа по паролю.

Мне бы хотелось:

или

Может, можно что-то сделать с AuthenticationMethods в sshd_config? Я нашел вот это: Использование OpenSSH (открытый ключ или пароль) + аутентификатор Google

AuthenticationMethods принимает несколько вариантов. Операции И используют запятую, операции ИЛИ используют пробелы. Итак, пример по приведенной выше ссылке был:

AuthenticationMethods publickey,keyboard-interactive:pam password,keyboard-interactive:pam

Это говорит о том, чтобы разрешить либо ключ и запрос-ответ, либо пароль и запрос-ответ. Это сделает то, что вы просите.

Я настоятельно рекомендую ограничить аутентификацию по ключу известными хостами, используя Match блоки, как показано на https://blog.tinned-software.net/restrict-ssh-logins-using-ssh-keys-to-a-particular-ip-address/

Так работает по умолчанию.

По умолчанию auth sshd не обращается к стеку PAM, когда используется аутентификация на основе ключа. Остальные стопки по-прежнему будут срабатывать (т.е. account по-прежнему будет применять ваши политики доступа), но для этого потребуется дополнительная настройка (настройка AuthenticationMethods), чтобы даже оказаться в ситуации, когда методы аутентификации PAM и не-PAM смешиваются.