Я хотел бы, чтобы sshd проверил открытый ключ пользователей, а затем запросил их пароль, а не только один или другой. Это возможно?
источник
Я хотел бы, чтобы 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:
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, и пропустите ее без пароля.
Я никогда не пробовал это, так что кто-то может увидеть больше проблем.