ssh-keygen -t rsa
~/.ssh 폴더를 사용하여 공개/개인 키 쌍을 만들었습니다.
그런 다음 명령을 사용하여 키를 복사했고 이 알림을 받았습니다.ssh-copy-id [email protected]
Number of key(s) added: 2
로그인을 시도했지만 여전히 비밀번호를 묻는 메시지가 나타납니다. 명령을 실행 find / -name id_rsa.pub
하고 원격 서버의 .ssh 폴더를 검색했지만 어디에서도 마스터 키를 찾을 수 없습니다. pub 키에 대해 go-rwx 및 777 권한을 사용하여 chmoding을 시도했지만 소용이 없었습니다. 파일이 복사되지 않지만 오류 메시지가 표시되지 않는 이유는 무엇입니까?
편집: ssh 명령에 -v 태그를 추가하고 이 출력을 얻었습니다.
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to [servername] [ipaddress] port 22.
debug1: Connection established.
debug1: identity file /Users/william.roberts/.ssh/id_rsa type 1
debug1: identity file /Users/william.roberts/.ssh/id_rsa-cert type -1
debug1: identity file /Users/william.roberts/.ssh/id_dsa type -1
debug1: identity file /Users/william.roberts/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3
debug1: match: OpenSSH_5.3 pat OpenSSH_5*
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 7c:3a:61:86:ec:53:40:c3:b0:5e:c2:9f:f4:bf:35:64
debug1: Host '[servername]' is known and matches the RSA host key.
debug1: Found key in /Users/william.roberts/.ssh/known_hosts:7
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,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/william.roberts/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Offering RSA public key: /Users/william.roberts/.ssh/other_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Offering RSA public key: /Users/william.roberts/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /Users/william.roberts/.ssh/id_dsa
debug1: Next authentication method: password
편집 2:
ls -la .ssh의 출력
drwxrwxrwx 2 root root 4096 Dec 10 19:15 .
dr-xr-x---. 5 root root 4096 Nov 19 22:44 ..
-rw------- 1 root root 3019 Dec 10 19:51 authorized_keys
-rw-r--r-- 1 root root 427 Nov 24 19:40 known_hosts
답변1
ssh-copy-id
일부 공개 키를 로컬에서 찾아 원격 서버에 로그인하고 해당 키를 ~/.ssh/authorized_keys
.
나는 그것이 파일에 키를 추가했다고 확신합니다.
이 키가 고려되지 않는 데에는 여러 가지 이유가 있을 수 있습니다. 예를 들어 ~/.ssh/
디렉터리에 올바른 권한이 없거나 서버가 키를 사용하도록 구성되지 않았을 수 있습니다.
ssh -v $server
문제에 대한 힌트를 얻는 데 사용됩니다 .
질문을 업데이트해 주셔서 감사합니다.
자세한 출력에서 서버가 공개 키 인증을 제공하지만 사용자의 키를 전혀 허용하지 않는 것을 볼 수 있습니다.
출력에서 볼 수 있듯이 ls -la ~/.ssh
누구나 authorized_keys
파일을 교체한 다음 귀하로 로그인할 수 있습니다. - 서버는 이를 인지하므로 파일의 키를 무시합니다.
설정을 통해 chmod go-wx ~/.ssh
이 문제가 해결되어야 합니다.
다음 절차를 권장합니다.
ssh-add $keyfile
지정된 파일의 개인 키를 에이전트에 추가하는 데 사용됩니다 .ssh-add -L
에이전트가 키를 알고 있는지 확인하고 공개 키를 표시하는 데 사용됩니다 .ssh-copy-id
에이전트에서 원격 서버로 키를 전송하는 경우 (~/.ssh/authorized_keys
이제 원격 파일에는 위에 나열된 공개 키가 정확히 포함되어야 함)ssh
프록시의 키를 사용하여 서버를 인증하는 데 사용됩니다 .
답변2
귀하의 .ssh
디렉토리는 전 세계에서 액세스할 수 없습니다.
chmod 700 ~/.ssh
고쳐야 해