원격 컴퓨터에 공개 키를 넣었지만 여전히 ssh 비밀번호 프롬프트가 표시됩니다. ssh -vv
도움이 될 수 있는 출력(마지막 몇 줄만)은 다음과 같습니다.
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/lior/.ssh/id_rsa <-- THAT's MY PRIVATE KEY!
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /Users/lior/.ssh/id_dsa
debug1: Trying private key: /Users/lior/.ssh/id_ecdsa
debug1: Trying private key: /Users/lior/.ssh/id_ed25519
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
중요: 동일한 프로세스를 수행한 후 비밀번호 없이 다른 시스템에 SSH로 연결할 수 있었으므로 특정 원격 시스템(CentOS 6에서 실행)에 문제가 있다고 가정합니다.
어떤 아이디어가 있나요?
답변1
원격 사용자의 홈 디렉터리에서:
- homedir의 소유자는 누구입니까?
- homedir/.ssh의 소유자는 누구입니까?
- homedir/.ssh/authorized_keys의 소유자는 누구입니까?
~, ~/.ssh 및 ~/.ssh/authorized_keys에 대한 액세스 권한은 무엇입니까?
~/.ssh/authorized_keys에 허용된 읽기 및/또는 쓰기 권한을 부여하면 sshd가 파일을 신뢰하지 않게 됩니다!
답변2
이 방법으로 문제가 100% 해결될지는 확실하지 않지만 시도해 보세요. 디렉토리에 파일을 생성합니다 ~/.ssh/config
. 구성 파일에 vim을 적용할 때 다음을 시도해 볼 수 있습니다.
Host <host_name_of_server>
HostName <ip_address_of_server>
User <user_created_for_server>
Port 22
PasswordAuthentication No
IdentityFile <path_to_key>
따라서 이것이 추가되면 이제 다음을 수행할 수 있습니다.
ssh <host_name_of_server>
이렇게 하면 서버에 할당된 호스트에 SSH로 연결할 때 비밀번호를 묻는 메시지가 표시되지 않습니다. 결과가 어떻게 되는지 알려주세요.