ssh -o PreferredAuthentications: в чем разница между «паролем» и «клавиатурно-интерактивным»?


33

И то и другое 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" аутентификация. Если вы намеренно не используете оба для разных целей, вы можете отключить одно или другое, чтобы избежать путаницы у конечного пользователя.


1
Увидеть RFC 4252 для пароль аутентификация и RFC 4256 за клавиатура-интерактивный ,
pynexj

Ответы:


32

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

аутентификация по паролю это простой запрос на один пароль. Нет конкретного запроса от сервера. Таким образом, клиент выбирает, как пометить приглашение ( "пароль пользователя @ хоста" подсказка от OpenSSH клиенты , лайк ssh, sftp, так далее).

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

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

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


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

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


2

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.