35

И PreferredAuthentications=password и PreferredAuthentications=keyboard-interactive будут запрашивать пароль, так в чем же разница между ними?

Я Google с ключевыми словами ssh PreferredAuthentications пароль клавиатура-интерактивная разница, но не нашел ответов.

Единственное различие , которое я заметил, строка подсказки user@host's password: против Password:

$ ssh -o PreferredAuthentications=password,keyboard-interactive my-host
root@my-host's password:
Password:
Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive).

ОБНОВЛЕНИЕ (2018-04-09):

Для удобства ознакомьтесь с информацией из книги SSH: TDG, упомянутой в ответе Джоуэлла.

"keyboard-interactive" аутентификация пользователя предназначена в первую очередь для обеспечения аутентификации PAM на стороне сервера. Он предусматривает диалог с несколькими запросами -ответами с пользователем, в котором сервер отправляет пользователю текстовый запрос, пользователь вводит ответ, и этот процесс может повторяться любое количество раз. Например, вы можете настроить PAM для SSH с помощью модуля, который выполняет аутентификацию с использованием токена безопасности RSA или схемы одноразового пароля . Люди смущаются этим, потому что по умолчанию "keyboard-interactive" аутентификация с клавиатуры обычно реализует аутентификацию по паролю в одном цикле запрос-ответ, который просто запрашивает пароль, таким образом, выглядя точно так же, как аутентификация по "password" . Если вы намеренно не используете оба для разных целей, вы можете отключить одно или другое, чтобы избежать путаницы у конечного пользователя.

2 ответа2

34

Протокол SSH имеет множество методов аутентификации. Пароль и клавиатура-интерактивные два из них.

Аутентификация по паролю - это простой запрос одного пароля. Нет конкретного запроса от сервера. Таким образом, именно клиент выбирает, как маркировать приглашение (приглашение «user @ host's password» происходит от клиентов OpenSSH, таких как ssh , sftp и т.д.).

Интерактивная аутентификация с помощью клавиатуры представляет собой более сложный запрос для произвольного количества фрагментов информации. Для каждой части информации сервер отправляет метку приглашения. Более того, он позволяет серверу предоставлять длинное описание всей "формы". Сервер также может указать, какие входные данные являются секретными (их необходимо скрывать при вводе пользователем), а какие нет.

Хотя в большинстве случаев клавиатурно-интерактивная аутентификация используется для запроса одного "секретного" запроса пароля, поэтому вряд ли есть какая-либо разница с аутентификацией по паролю.

Это разница с точки зрения протокола.


С точки зрения реализации, с сервером OpenSSH интерактивная аутентификация с помощью клавиатуры может быть подключена к двухфакторной (или многофакторной) аутентификации, например, предоставляемой универсальным механизмом PAM или Kerberos.

С точки зрения клиента, еще одно отличие заключается в локализации. С помощью аутентификации по паролю клиент может локализовать метку "Пароль", поскольку он знает, что сервер запрашивает пароль. С помощью интерактивной аутентификации с использованием клавиатуры, даже когда сервер запрашивает только один пароль, клиент не может локализовать приглашение (если не использует AI), потому что это общее приглашение.

2

Вы уже знаете, что такое «пароль». На самом высоком уровне (не в протоколе уровня кирпича) представьте, что клавиатурно-интерактивный метод - это способ использования 2FA с использованием Radius и / или SecurID и т.д. Он предоставляет диалоги вызова и ответа: у ssh.com есть хороший краткое описание на нем. Это еще один шаг, чтобы выделить клавиатуру - интерактивный зонт, под которым подпадает пароль. С уважением к авторам, это немного сбивает с толку.

Также см. Определение Книги Улитки . Мы часто используем это для наших защищенных ящиков RSA.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .