비밀번호 또는 공개 키에 sssd와 함께 ssh를 사용하고 PAM을 통해 MFA 지원으로 확장

비밀번호 또는 공개 키에 sssd와 함께 ssh를 사용하고 PAM을 통해 MFA 지원으로 확장

그래서 광범위한 테스트와 토론을 거친 후에는 더 이상 혼자서 이 문제를 해결할 수 없습니다.

목표: 공개 키 또는 비밀번호를 사용하여 SSH를 통해 인증하고 MFA에 PAM을 사용합니다.

사용된 시스템은 Ubuntu Server 20.04입니다.

이를 관리 가능한 부분으로 나누는 것도 여러 부분을 결합하는 데 몇 가지 어려움이 있음을 보여줍니다.

공개 키로 인증하고 MFA용 PAM을 사용하는 것은 문제가 되지 않습니다. 비밀번호로 인증하고 MFA용 PAM을 사용하는 것은 문제가 되지 않습니다. 공개키나 비밀번호를 사용하는 것은 약간 다릅니다. MFA와 결합하는 것은 불가능해 보입니다.

문제는 SSHD가 비밀번호로 사용자를 인증하는 방법에 있는 것 같습니다. SSHD는 PAM 없이 이 작업을 수행할 수 없습니다. PAM 없이는 사용자 섀도우 파일을 읽을 수 없기 때문입니다. PAM을 활성화하고 인증 스택에 대해 pam_env.so 및 pam_sssd.so를 활성화하면 이 문제가 해결됩니다.

따라서 PAM을 사용하면 공개키나 비밀번호로 인증할 수 있습니다. 내가 이해하지 못하는 것은 SSHD에 공개 키가 아닌 비밀번호 인증을 위해 사용자 섀도우 파일이 필요한 이유는 무엇입니까? 나는 여전히 PAM 없이 publickey를 사용하고,authorized_keys 명령으로 공개 키를 제공하기 위해 SSSD를 사용하여 내 그룹과 모든 것을 가져옵니다.

비밀번호를 사용하여 인증하려면 인증 스택에 해당 pam 모듈이 필요합니다.

이는 큰 문제가 되지 않지만 목표는 MFA를 활성화하고 필요한 경우가 아니면 사용자에게 암호를 묻는 메시지를 표시하지 않는 것입니다. MFA는 PAM을 사용하여 구현되어야 합니다. 공개 키와 함께 PAM을 사용하는 것은 문제가 되지 않습니다. sshd_config에서 "publickey,keyboard-interactive" 메서드를 설정하면 이를 PAM에 전달하고 MFA에 대해 pam_env.so 다음에 PAM 모듈을 설정하면 이를 허용합니다.

그러나 "password,keyboard-interactive" 방법을 활성화하려면 pam_sss.so 모듈이 필요하므로 publickey 방법을 사용하더라도 비밀번호를 입력하라는 메시지가 표시되고 MFA를 입력하라는 메시지가 표시됩니다.

sssd의 비밀번호 또는 sssd의 공개 키를 사용하여 ssh를 통해 인증할 수 있도록 이 문제를 어떻게 탐색합니까? 그리고 다음 단계에서는 PAM이 비밀번호에 대한 요구 사항인지 아닌지(바람직하게는 그렇지 않음), 어느 쪽이든 MFA를 구현하는 방법은 무엇입니까?

이것이 아직도 머리 속에 맴돌고 있기 때문에 제가 더 잘 설명할 수 있을 거라 확신하지만 제 어려움을 최선을 다해 설명했습니다.

내가 읽은 내용은 sssd, pam_ssh, pam_sssd, pam_ssh_agent_auth, sshd입니다. 또한 DUO, Google MFA, RedHat에 대한 문서를 읽어보세요.

어떤 생각이나 아이디어가 있나요?

어떤 의견이라도 대단히 감사하겠습니다.

감사해요!

관련 정보