다음과 같은 경우에도 SSH를 수행하려면 여전히 비밀번호가 필요한 시스템이 있습니다.
- 내 공개 키가
authorized_keys
원격 서버의 파일에 올바르게 존재합니다. id_rsa
내 개인 키는 내.ssh
디렉터리 에 저장됩니다 .- 로컬 클라이언트 및 원격 서버에 대한 권한이 정확합니다. 여기에는 홈 디렉터리,
.ssh
디렉터리,authorized_keys
파일 및 키 파일 자체가 포함됩니다. - SELinux는 클라이언트와 서버 모두에서 비활성화됩니다.
또한 /var/log/secure
서버는 로그인을 시도할 때마다 다음 오류를 보고합니다.
sshd[17110]: error: Could not get shadow information for <USER>
실제 사용자 이름을 문자열로 바꿨습니다 <USER>
.
이 문제의 원인은 무엇이며 SSH 키가 제대로 작동하도록 하려면 어떻게 해야 합니까?
답변1
문제는 공개/개인 키 불일치입니다.클라이언트 시스템에서. 나는 다음을 실행하여 이 문제를 해결했습니다.
$ cd ~/.ssh
$ ssh-keygen -y -f id_rsa > id_rsa.pub
그러면 기존 개인 키에 해당하는 공개 키가 생성되어 파일에 기록되어 id_rsa.pub
공개/개인 키가 다시 일치됩니다.
내가 찾은 몇 가지 Stack Exchange 답변에서 내 질문에 대한 답변을 찾을 수 없었기 때문에 여기에서 내 질문에 대답/질문하기로 결정했습니다. 어떻게 이런일이 일어 났습니까? 과거에 SSH 키를 가지고 있었는데 ssh-keygen
어느 시점에서 실수로 다시 실행한 일이 일어났습니다. 그러면 새로운 공개/개인 키 쌍이 생성됩니다. 나는 이것을 깨닫고 이전 개인 키를 다시 넣어서 문제를 해결하려고 했습니다. 서버의 파일에는 여전히 이전 공개 키가 있으므로 authorized_keys
변경할 필요가 없습니다. 안타깝게도 클라이언트의 공개 키를 변경하지 않아 현재 상황이 발생했습니다.