다음은 sudo 및 admin 그룹에 속한 사용자를
제외한 모든 사용자에게 Google 2FA를 필수로 설정 합니다
(sudo 또는 admin 그룹의 사용자가 2FA를 구성하지 않은 경우 공개 키를 기반으로 인증 함).
파일: /etc/pam.d/sshd
auth required pam_google_authenticator.so nullok
auth optional pam_succeed_if.so user ingroup sudo
auth optional pam_succeed_if.so user ingroup admin
파일: /etc/ssh/sshd_config
AuthenticationMethods publickey,keyboard-interactive
UsePAM yes
ChallengeResponseAuthentication yes
결과 :
| Belongs to sudo or | Has 2FA Already Setup | Authentication Result
| admin group | in ~/.google_authenticator |
----------+----------------------+-----------------------------+------------------------
User A | NO | NO | DENIED LOGIN UNTIL 2FA IS SETUP
User B | YES | NO | CAN LOGIN (PRIVATE/PUBLIC KEY USED)
User C | NO | YES | CAN LOGIN (PRIVATE/PUBLIC KEY AND 2FA USED)
User D | YES | YES | CAN LOGIN (PRIVATE/PUBLIC KEY AND 2FA USED)
Google OTP의 README.md 설명서 에 따르면 :
널록
PAM은 모듈에서 하나 이상의 성공 응답을 요구하며 nullok는이 모듈이 IGNORE라고 말합니다. 즉,이 옵션을 사용하는 경우 하나 이상의 다른 모듈에 성공 했어야합니다. 이를 수행하는 한 가지 방법은 PAM 구성의 끝에 인증 필수 pam_permit.so를 추가하는 것입니다.
이것은 nullok
여기서 안전하게 사용 합니다.