현재 다른 사람이 초기 설치를 수행한 시스템을 구성하려고 합니다.
상자에 SSH로 접속하여 내 계정에 일부 그룹을 추가하고 비밀번호를 변경할 수 있습니다(아직 세션이 열려 있고 루트 액세스 권한을 얻습니다 sudo -i
). "passwd: 모든 인증 토큰이 성공적으로 업데이트되었습니다."라는 메시지가 표시됩니다. 그러나 두 번째 연결을 시도하면 "권한이 거부되었습니다"라는 메시지가 나타납니다.
비밀번호를 다시 재설정했습니다(입력매우조심하세요) 그리고 다시 로그인을 시도해보세요(매우 조심해서 입력하세요). 그러나 여전히 동일합니다.
계정이 잠겨 있지 않습니다(적어도 usermod -U는 효과가 없으며 섀도우 파일에 "!"가 없습니다). 루트로 로그인을 시도하지 않았습니다. 아니요 /etc/nogin
내 쉘이 /bin/bash에서 변경되지 않았습니다.
따라서 여전히 머신에 액세스할 수 있으므로 공개 키를 ~/.ssh/authorized_keys에 복사합니다. 비밀번호를 사용하여 로그인하려고 하면 비밀번호 프롬프트가 표시되지만 여전히 실패합니다.
RHEL 6.5 상자입니다.
감사 로그(selinux 모드는 허용됨)에 비밀번호 오류가 있음을 나타내는 것 같습니다.
type=USER_AUTH msg=audit(1455985417.050:170881): user pid=23682 uid=0 auid=0 ses=1548 subj=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=PAM:authentication acct="user" exe="/usr/sbin/sshd" hostname=192.168.1.81 addr=192.168.1.81 terminal=ssh res=failed'
type=SYSCALL msg=audit(1455985417.051:170882): arch=c000003e syscall=2 success=yes exit=4 a0=7fdafebb7e30 a1=401 a2=7fdafebb2366 a3=0 items=1 ppid=28418 pid=23682 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=1548 comm="sshd" exe="/usr/sbin/sshd" subj=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 key="session"
type=CWD msg=audit(1455985417.051:170882): cwd="/"
type=PATH msg=audit(1455985417.051:170882): item=0 name="/var/log/btmp" inode=41 dev=fd:05 mode=0100600 ouid=0 ogid=22 rdev=00:00 obj=system_u:object_r:faillog_t:s0 nametype=NORMAL
type=USER_AUTH msg=audit(1455985417.052:170883): user pid=23682 uid=0 auid=0 ses=1548 subj=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=password acct="(unknown)" exe="/usr/sbin/sshd" hostname=? addr=192.168.1.81 terminal=ssh res=failed'
답변1
귀하의 질문이나 증상에는 정해진 정답이 없습니다. 해결 방법은 환경에 따라 다릅니다.
다음은 이와 같은 문제가 발생할 때 제가 시도하는 몇 가지 방법이며 일반적으로 올바른 접근 방식을 가리킵니다.
이전 비밀번호를 사용해 보셨나요? 새로운 비밀번호로 업데이트되지 않았을 수 있습니다.
비밀번호는 어디에 저장되나요? NIS, LDAP, 로컬 컴퓨터. . .
"마스터" NIS 서버의 최신 콘텐츠로 업데이트되지 않은 "슬레이브" NIS 서버가 있습니까?
루트로 전환한 후 다시 사용자로 전환할 수 있나요?
공개 키를 복사하고 개인 키를 로컬로 가져온 후 "ssh -vvv $HOST"는 무엇을 표시합니까?
원격 호스트에서 자체 호스트로 SSH를 시도하면 어떻게 되나요?
다음 의견에 대한 응답으로 편집하십시오.
(1) 이전 비밀번호를 사용해 보셨습니까?
(2) "루트로 전환한 후 다시 사용자로 전환할 수 있습니까?"라고 말하면 방금 sudo 쉘을 종료한 것처럼 보입니다. 내 말은: 현재 쉘에서 "sudo -i"가 작동하고 그 후에는 "su $USER" 또는 "su - $USER"가 작동합니까? 아니면 "$USER 찾을 수 없음" 또는 "홈 디렉터리를 찾을 수 없음"으로 인해 실패합니까?
(3) "id $USER"의 출력은 무엇입니까?
(4) 홈 디렉토리 & ~/.ssh/의 권한은 무엇입니까?
(5) 다른 로컬 계정을 생성하고 로그인하여 비밀번호를 변경할 수 있나요? 아니면 당좌 예금 계좌에만 문제가 있습니까?
(6) 귀하의 계정이 /etc/passwd에 올바르게 나열되어 있습니까?
(7) 목록 셸을 수동으로 실행하려고 하면 올바르게 시작됩니까?
최종 편집(OP가 자신의 문제를 발견한 후):
모든 새로운 사용자가 로그인할 수 있지만 비밀번호를 변경한 후 로그인에 "Permission Denied"라고 표시되면 /etc/passwd 및 /etc/shadow에서 정확히 무슨 일이 일어나고 있는지 확인하세요. 정말 놀라운 변화였습니다.
새 계정을 만들고, /etc/passwd 및 /etc/shadow를 백업하고, 로그인하고, passwd를 변경하고, 로그아웃하고, 파일을 비교하여 변경된 내용을 확인하고, 차이점을 설명하세요.
현재 사례에서는 "정책이 변경을 허용하기 전에 비밀번호가 변경된" "비밀번호 사용 기간"이 문제인 것으로 밝혀졌습니다.
답변2
문제의 원인은 정책에서 모든 비밀번호에 대해 최소 7일의 사용 기간을 요구한다는 것입니다. "기본" 비밀번호를 사용하는 내 계정은 7일 이내에 생성되었습니다(그런데 왜 passwd
문제를 보고하지 않고 변경할 수 있습니까?).
나는 pam 구성을 자세히 조사했지만 /etc/login.defs를 보는 것을 완전히 무시했습니다(그리고 여전히 최소 기간이 만료되기 전에 비밀번호를 변경할 수 있도록 허용하는 passwd에 결함이 있다고 생각합니다).