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

10

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

surprise_
источник

Ответы:

12

Это, наконец, доступно начиная с 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:
Сёрен Лёвборг
источник
1

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странице руководства .

mgorven
источник
0

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

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

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

Марк Вагнер
источник