서버는 비밀번호 없는 SSH 로그인을 위해 공개 키를 허용하지 않습니다.

서버는 비밀번호 없는 SSH 로그인을 위해 공개 키를 허용하지 않습니다.

중복 가능성:
공개 키 인증을 사용할 때 SSH 비밀번호 프롬프트가 계속 표시되는 이유는 무엇입니까?

SSH를 통해 두 서버 모두에 액세스할 수 있습니다. 하나는 낡고 하나는 새 것입니다. 오래된 것의 경우 튜토리얼을 사용했습니다.SSH 비밀번호 없는 로그인로그인할 때마다 비밀번호를 입력할 필요가 없습니다.

새 기계로 튜토리얼을 다시 따랐지만 이번에는 작동하지 않았습니다. ssh(옵션)의 디버그 출력을 살펴본 결과 새 서버에 내 공개 키가 -v없는 것 같습니다 . accept그런데 확인해 보니 authorized_keys봇과 똑같고, 사용해 보기도 했습니다 md5sum.

무엇이 문제이고 어떻게 해결하나요?

이전 서버의 디버그 출력(스니펫):

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/NICK/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277

새 서버 디버깅의 출력(스니펫)이 작동하지 않습니다.

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/NICK/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/NICK/.ssh/id_dsa

[업데이트] 원격 인증키의 소유권

NICK@server-new:~/.ssh$ ls -l
total 4
-rwx------ 1 NICK NICK 404 2012-08-08 16:11 authorized_keys

작동하지 않는 서버의 전체 디버그 출력:

OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /home/NICK/.ssh/config
debug1: /home/NICK/.ssh/config line 1: Applying options for foo2
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to foo-serv2.cs.bar.it [XXX.XXX.XXX.XXX] port 22.
debug1: Connection established.
debug1: identity file /home/NICK/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/NICK/.ssh/id_rsa-cert type -1
debug1: identity file /home/NICK/.ssh/id_dsa type -1
debug1: identity file /home/NICK/.ssh/id_dsa-cert type -1
debug1: identity file /home/NICK/.ssh/id_ecdsa type -1
debug1: identity file /home/NICK/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-4ubuntu6
debug1: match: OpenSSH_5.5p1 Debian-4ubuntu6 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA XXX
debug1: Host 'foo-serv2.cs.bar.it' is known and matches the RSA host key.
debug1: Found key in /home/NICK/.ssh/known_hosts:34
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/NICK/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/NICK/.ssh/id_dsa
debug1: Trying private key: /home/NICK/.ssh/id_ecdsa
debug1: Next authentication method: password

답변1

원격 측 ~/.ssh 디렉토리의 소유권과 모드가 올바른지 확인하셨나요? 이는 귀하가 소유하고 0700 권한(예: )을 가지고 있어야 합니다 chmod 700 ~/.ssh. 또한 chmod go-w ~홈 디렉토리에 대한 쓰기 권한이 있는 사람은 누구나 .ssh 디렉토리의 권한을 변경할 수 있기 때문에 이 항목도 확인됩니다.

답변2

/etc/ssh/sshd_config이전 서버와 새 서버의 sshd 구성 파일을 비교하십시오(광산은 다음 위치에 있음). 새 서버의 설정이 다릅니다. 예를 들어 새 서버 AuthorizedKeysFile의 옵션이 다른 파일을 가리킵니다(현재 일부 SSH 설치에서는 이를 호출한다고 생각합니다). authorized_keys2?

관련 정보