원격 시스템에서 키를 업데이트했는데도 내 SSH 연결이 승인되지 않은 이유는 무엇입니까?

원격 시스템에서 키를 업데이트했는데도 내 SSH 연결이 승인되지 않은 이유는 무엇입니까?

내 로컬 컴퓨터에 공개 키가 저장되어 있습니다.

.ssh/id_rsa.pub

원격 시스템에 로그인할 수 있도록 다음 명령을 사용하여 이 키를 복사합니다 ssh-copy-id.

ssh-copy-id user@remote-host

원격 호스트에서는 로컬 시스템 정보 .ssh/authorized_keysssh-dss시작 하고 끝나는 두 줄이 파일에 추가된 것을 볼 수 있습니다 .ssh-rsa

그러나 이제 다음을 사용하여 원격 컴퓨터에 로그인하면

ssh user@remote-host

아직도 비밀번호를 묻고 있어요. 왜 그런 겁니까? 어떻게 해결하나요?

  • 파일 권한이 authorized_keys정확합니다.
  • 결과는 다음과 같습니다 ssh -v.

OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to xxx [xxx] port 22.
debug1: Connection established.
debug1: identity file /home/alexander/.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/alexander/.ssh/id_rsa-cert type -1
debug1: identity file /home/alexander/.ssh/id_dsa type 2
debug1: Checking blacklist file /usr/share/ssh/blacklist.DSA-1024
debug1: Checking blacklist file /etc/ssh/blacklist.DSA-1024
debug1: identity file /home/alexander/.ssh/id_dsa-cert type -1
debug1: identity file /home/alexander/.ssh/id_ecdsa type -1
debug1: identity file /home/alexander/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version dropbear_0.52
debug1: no match: dropbear_0.52
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1
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: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Server host key: RSA XXXX
debug1: Host 'remote_host' is known and matches the RSA host key.
debug1: Found key in /home/alexander/.ssh/known_hosts:26
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 DSA public key: /home/alexander/.ssh/id_dsa
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: /home/alexander/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/alexander/.ssh/id_ecdsa
debug1: Next authentication method: password
user@remote_host's password:

답변1

내용을 원격 호스트 디렉터리로 이동해야 합니다. 그렇지 않으면 .ssh 디렉터리(로컬 및 원격 호스트) 모두에서 새 키와 chmod 700(600 아님)이 확인되지 않습니다.

새 키 쌍을 생성한 후 로컬 호스트에 명령을 입력하면 cat .ssh/id_rsa.pub | ssh <user>@<remotehost> 'cat >> .ssh/authorized_keys'로컬 시스템에서 인증된 키의 출력이 가져와지고 원격 시스템에도 배치됩니다. 또한 RW뿐만 아니라 RWX 액세스 권한도 있는지 확인해야 합니다.

관련 정보