Есть ли команда конфигурации sshd для блокировки ключей, содержащих пустые или пустые парольные фразы?
Я хотел бы ограничить доступ по ssh для людей с паролями без хранения паролей на серверах.
Я так не думаю, так как ключевая фраза используется на стороне клиента для разблокировки ключа. Я не думаю, что сервер знает, есть ли в ключе фраза. Кроме того, пользователь может разблокировать свои ключи в своих связках ключей ssh-agent.
Лучше использовать открытый ключ в качестве второго фактора, хотя пароль все еще нужен. Это позволяет реализовать политику минимального пароля приличной надежности.
Нет, это невозможно. Сервер не имеет возможности узнать, ввел ли пользователь фразу-пароль для использования своего ключа или нет, и ему также не нужна эта информация. Единственное, что видит сервер, - это «пожалуйста, впустите меня, подписал какой-нибудь ключ» и сравнивает это с известным открытым ключом. Вы можете отключить вход с помощью pubkey, но тогда вам придется хранить (зашифрованные) пароли на сервере, которые вам не нужны.