VMWare 가상 머신의 Red Hat Enterprise Linux 6.10. 여러 사용자 계정이 정의되어 있습니다. 하나의 사용자 계정(user3)은 SSH 또는 VMWare 콘솔을 통해 로그인할 수 없습니다. 이전에 로그인한 적이 있는데 지난 이틀 동안 로그인이 되지 않았습니다. 다른 사용자 계정은 정상적으로 로그인이 가능합니다.
사용자 계정은 /etc/passwd 및 /etc/shadow에 나열되어 있으며 잠겨 있지 않습니다. 새 사용자를 생성했고 해당 사용자는 문제 없이 로그인했습니다. /etc/passwd 항목은 유효한 쉘 경로(/bin/bash)를 표시합니다.
user3을 삭제하고 계정을 다시 만들었습니다. 여전히 로그인이 되지 않습니다. 다른 이름(usr3, user33 등)을 가진 새 계정이 작동합니다. user3이라는 계정은 로그인할 수 없습니다.
새 계정이 user3이 소유한 UID를 받으면 로그인할 수 있습니다. user3이라는 새 계정의 UID가 다른 경우에도 여전히 로그인에 실패합니다. 표시 이름 "user3"이 어딘가에 잠겨 있습니다.
"passwd user3"을 루트로 실행하면 /var/log/secure에 다음 항목이 제공됩니다.
passwd: pam_unix(passwd:chauthtok): password changed for user3
passwd: gkr-pam: couldn't update the 'login' keyring password: no old password was entered
user3으로 SSH에 접속하면 /var/log/secure에 다음이 표시됩니다.
sshd[21420]: error: PAM: Authentication failure for user3 from computer1
그게 다야. 다른 오류는 없습니다. 흥미롭게도 의도적으로 잘못된 비밀번호를 입력하면 다른 오류 세트가 표시됩니다.
unix_chkpwd[21903]: password check failed for user (user3)
sshs[21745]pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=computer1 user=user3
sshd[21718]: error: PAM: Authentication failure for user3 from computer1
sshd[22121]: error: PAM: Authentication failure for illegal user user3 from computer3
PAM의 어딘가에 "user3"에 대한 손상된 항목이 있는 것 같습니다. 추가 문제를 해결하기에는 PAM에 대해 충분히 알지 못합니다.
다른 사용자 계정에 영향을 미치고 싶지 않으므로 전체 PAM 구성을 지우거나 재설정하는 솔루션은 피해야 합니다. "user3" 이름을 어떻게 정확히 알 수 있나요?
답변1
저도 같은 문제가 있었습니다. 한 사용자가 Putty 또는 로컬 SSH를 통해 로그인할 수 없었지만 pam_tally2에 유효하거나 유효하지 않은 비밀번호가 있는 새 항목이 없었습니다.
기타 증상:
- su - (비밀번호를 묻는 메시지를 표시하고 "su: 인증 실패"를 반환합니다.)
- /var/log/secure 항목에 인증/계정/세션 정보 없이 "sshd[] 오류: PAM: 인증 실패"라고 표시됩니다.
- "sudo passwd"를 사용하여 비밀번호를 재설정하면 비밀번호가 명확하게 재설정되어 토큰이 성공적으로 변경되었고 /etc/shadow의 타임스탬프가 올바르게 업데이트되었지만 인증 문제가 지속됨을 나타냅니다.
- 사용자 계정이 만료되지 않았습니다.
다른 모든 사용자는 올바르게 로그인할 수 있으므로 이는 일반적인 PAM 구성 문제가 아닙니다.
해결책:
faillock --user <username> (showed 5 valid failures)
faillock --user <username> --reset
faillock --user <username> (now has 0 valid failures)
그 후 Putty를 통해 로그인하고 "su -"를 성공적으로 사용할 수 있었습니다.
답변2
모듈 pam_tally2
은 액세스 시도 횟수를 기록하고 너무 많은 시도가 실패할 경우 액세스를 거부할 수 있습니다. 모듈의 맨페이지에 자세한 정보가 있습니다.
이 모듈의 사양은 다음과 같습니다 /etc/pam.d/login
. 예를 들면 다음 과 같습니다.
auth required pam_tally2.so deny=6
다음을 통해 사용자의 오류 수를 확인할 수 있습니다.
pam_tally2 --user=<username>
다음을 통해 카운트를 재설정할 수 있습니다.
pam_tally2 --user=<username> --reset