Аутентификация sftp: на основе ключа и пароля одновременно?

Аутентификация sftp: на основе ключа и пароля одновременно?

Могу ли я реализовать аутентификацию на основе ключа и пароля одновременно на сервере sftp? Я хочу, чтобы сервер сначала выполнил аутентификацию на основе ключа. и если все правильно, то запросил аутентификацию на основе пароля. Возможно ли это реализовать?

решение1

SFTP почти всегда (но не обязательно) использует SSH в качестве транспорта. Аутентификация выполняется на уровне SSH. Таким образом, искомая вами опция относится к конфигурации сервера SSH.

Я предполагаю OpenSSH. Смотритеman 5 sshd_config[выделено мной]:

AuthenticationMethods

Указывает методы аутентификации, которые должны быть успешно завершены для предоставления пользователю доступа. За этой опцией должен следовать один или несколько списков имен методов аутентификации, разделенных запятыми, или одна строка any, чтобы указать поведение по умолчанию принятия любого одного метода аутентификации. Если значение по умолчанию переопределено, то для успешной аутентификации требуется завершение каждого метода по крайней мере в одном из этих списков.

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

[…]

(Примечание:В чем разница между passwordи keyboard-interactive?)

Кажется, этот пример — именно то, что вам нужно.

Обратите внимание, что эта настройка повлияет не только на SFTP, но и на каждое использование SSH. Насколько мне известно, вы не можете легко использовать настройку, отличную для SFTP от всего остального, поскольку аутентификация происходит до того, как сервер узнает, что вы хотите SFTP. Однако сервер узнает пользователя достаточно рано, поэтому, если вам это нужно для «пользователей только SFTP», то можно повлиять только на них благодаря условному блоку (Match).

После изменения файла конфигурации вам необходимо перезапустить SSH-сервер или иным образом указать ему перезагрузить конфигурацию. sshdOpenSSH перечитывает свою конфигурацию при получении сигнала отбоя SIGHUP.

Связанный контент