Использование ssh с sssd для пароля или открытого ключа и расширение поддержки MFA через PAM.
Итак, после тщательного тестирования и обсуждения я больше не могу самостоятельно решать эту проблему.
Цель: аутентификация по ssh с использованием открытого ключа или пароля и использование PAM для MFA.
Используемая система — Ubuntu Server 20.04.
Разделение этого процесса на управляемые части также выявило некоторые трудности с объединением разных частей.
Аутентификация с помощью открытого ключа и использование PAM для MFA не является проблемой. Аутентификация с помощью пароля и использование PAM для MFA не является проблемой. Использование открытого ключа или пароля немного отличается. Объединение с МИД кажется невозможным.
Проблема, похоже, заключается в том, как SSHD аутентифицирует пользователя с помощью пароля. SSHD не может сделать это без PAM, поскольку пользовательский теневой файл не читается без PAM. Включение PAM и активация pam_env.so и pam_sssd.so для стека аутентификации решает эту проблему.
Таким образом, используя PAM, я могу пройти аутентификацию либо с помощью открытого ключа, либо с помощью пароля. Чего я не понимаю, так это почему SSHD нужен теневой файл пользователя для аутентификации по паролю, а не для открытого ключа? Я по-прежнему получаю свои группы и все остальное, используя открытый ключ, без PAM, и использую SSSD для предоставления открытых ключей с помощью командыauthorized_keys.
Для аутентификации с использованием пароля мне нужен соответствующий модуль pam в стеке аутентификации.
Это не будет большой проблемой, но цель состоит в том, чтобы включить MFA и не запрашивать у пользователя пароль, если он не нужен. MFA необходимо реализовать с использованием PAM. Использование PAM вместе с открытыми ключами не является проблемой: установка метода «publickey,keyboard-interactive» в sshd_config передает это в PAM, а установка модуля PAM после pam_env.so для MFA позволяет это.
Но для включения методов «пароль, интерактивная клавиатура» требуется модуль pam_sss.so, поэтому мне будет предложено ввести пароль, даже если я использую метод открытого ключа, а затем будет предложено ввести MFA.
Как мне решить эту проблему, чтобы я мог пройти аутентификацию по ssh с паролем от sssd или открытым ключом от sssd? И следующий шаг: PAM является обязательным или нет для пароля (желательно нет), в любом случае, как реализовать MFA?
Поскольку эта мысль все еще крутится у меня в голове, я уверен, что смогу объяснить лучше, но приложил все усилия, чтобы объяснить свои трудности.
Я читал о sssd, pam_ssh, pam_sssd, pam_ssh_agent_auth, sshd. Также прочтите документацию для DUO, Google MFA, RedHat.
Есть мысли или идеи?
Любая обратная связь будет принята с благодарностью.
Спасибо!