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

Как я могу включить аутентификацию с паролем и открытым ключом с помощью OpenSSH

Я хотел бы, чтобы sshd проверял открытый ключ пользователей, а затем запрашивал их пароль, а не только один или другой. Это возможно?

Это наконец доступно с OpenSSH 6.2 (выпущен в марте 2013 г.), используя AuthenticationMethods вариант конфигурации.

Например, вы можете добавить следующую строку в sshd_config чтобы потребовать аутентификацию с открытым ключом и паролем:

AuthenticationMethods publickey,password

При входе в систему ssh и scp сначала выполнит аутентификацию с открытым ключом, а затем запросит пароль:

$ ssh user@example.org
Authenticated with partial success.
user@example.org's password:

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

Using username "user".
Authenticating with public key "rsa-key-20131221-user"
Passphrase for key "rsa-key-20131221-user":
Further authentication required
user@example.org's password:

Не сейчас. Но есть несколько патчей, которые должны это добавить.

Видеть https://bugzilla.mindrot.org/show_bug.cgi?id=983

OpenSSH в RHEL / CentOS 6.3 теперь поддерживает эту функцию, хотя я не могу найти ее упоминания в примечаниях к выпуску OpenSSH. Из Примечания к выпуску RHEL:

Теперь SSH можно настроить так, чтобы требовать несколько способов аутентификации (тогда как ранее SSH допускал несколько способов аутентификации, из которых только один требовался для успешного входа в систему); например, для входа в систему с поддержкой SSH требуется ввести как парольную фразу, так и открытый ключ. В RequiredAuthentications1 и RequiredAuthentications2 параметры можно настроить в /etc/ssh/sshd_config файл, чтобы указать аутентификации, необходимые для успешного входа в систему. Например:

   ~]# echo "RequiredAuthentications2 publickey,password" >> /etc/ssh/sshd_config

Для получения дополнительной информации о вышеупомянутом /etc/ssh/sshd_config варианты см. sshd_config справочная страница.

Это возможно, но неуклюже и ограниченно. Сначала вы разрешаете только аутентификацию с открытым ключом. Затем в /etc/ssh/sshd_config добавить ForceCommand который выполняет сценарий, который проверяет пароль.

Сценарий нарушит работу SFTP, если вы не проверите, что это команда sftp, и не пропустите ее без пароля.

Я никогда не пробовал это, так что кто-то может увидеть больше проблем.