SSH 공개 키 로그인에 이상한 동작


2

나는 정말로 여기 붙어 있습니다. 공개 키를 사용하여 로컬에서 ec2 서버로 ssh하려고했지만 작동하지 않습니다. -> 권한이 거부되었습니다 (공개 키).

로컬 : 생성 된 공개 키 쌍 및 id_rsa.pub의 복사 된 내용입니다. 원격 : PEM 파일을 사용하여 EC2 서버에 ssh-ed하고 id_rsa.pub 내용을 .ssh 폴더의 인증 된 키 파일 줄에 붙여 넣습니다.

제대로 작동해야합니까? 나는 일반적인 실수가 권한이라는 것을 알았지 만 내 것이 올바르게 설정 된 것 같습니다.

원격 권한 :

drwx------ 2 ec2-user ec2-user  4096 Jul 23 04:00 .ssh

그리고 .ssh에서 :

-rw-r--r-- 1 ec2-user ec2-user  404 Jul 24 03:19 id_rsa.pub
-rw------- 1 ec2-user ec2-user 1679 Jul 24 03:19 id_rsa
-rw------- 1 ec2-user ec2-user  529 Jul 26 20:53 authorized_keys

노동 조합 지부:

drwx------    10 robvanhaaren  staff    340 Jul 26 18:43 .ssh

그리고 .ssh에서 :

-rw-r--r--  1 robvanhaaren  staff   404 Jul 26 21:28 id_rsa.pub
-rw-------  1 robvanhaaren  staff  1766 Jul 26 21:28 id_rsa
-rw-r--r--  1 robvanhaaren  staff  5987 Jul 26 21:29 known_hosts

그러나 내가 달릴 때 :

Robs-MacBook-Air-2:.ssh robvanhaaren$ ssh ec2-54-85-62-99.compute-1.amazonaws.com -l ec2-user -v

다음을 반환합니다.

OpenSSH_5.9p1, OpenSSL 0.9.8y 5 Feb 2013
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to ec2-54-85-62-99.compute-1.amazonaws.com [54.85.62.99] port 22.
debug1: Connection established.
debug1: identity file /Users/robvanhaaren/.ssh/id_rsa type 1
debug1: identity file /Users/robvanhaaren/.ssh/id_rsa-cert type -1
debug1: identity file /Users/robvanhaaren/.ssh/id_dsa type -1
debug1: identity file /Users/robvanhaaren/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.2
debug1: match: OpenSSH_6.2 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9
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 7a:d3:6c:7f:64:5d:b1:7b:2e:bb:73:0c:ce:0c:17:77
debug1: Host 'ec2-54-85-62-99.compute-1.amazonaws.com' is known and matches the RSA host key.
debug1: Found key in /Users/robvanhaaren/.ssh/known_hosts:15
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
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /Users/robvanhaaren/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: Trying private key: /Users/robvanhaaren/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).

이상한 점은 다른 ec2 서버에서 서버에 공개 키를 사용하여 로그인 할 수 있다는 것입니다. 따라서 문제 는 리모컨이 아닌 로컬 컴퓨터에있는 것 같습니다 .

도와주세요!


1
확인 했습니까 /var/log/auth.log? 관련 로그가 있습니까?
Valmiky Arquissandas

다른 EC2 서버에서 동일한 키 세트를 사용하여 로그인하고 있습니까?
heavyd

2
authorized_keys에 제대로 추가하지 않았을 수 있습니다. ssh-copy-id가 자동으로 수행 할 수 있습니다. 첫째, 즉 로그인 통과 / 사용자를 활성화 PasswordAuthentication yes에 sshd_config를, 당신은 다음 사용할 수있는 ssh-copy-id user@host자동 authorized_keys에 추가되며, 다음 번에이 키를 사용합니다, 당신은 당신이 원하는 경우 로그인을 통과 / 사용자를 해제 할 수 있습니다 다음
barlop을

답변:


2

SSH 문제는 번거로울 수 있습니다. 나는 항상 다음과 같이 시작합니다. 치트 시트에 명령이 저장되어있어 오타를 두려워 할 필요가 없습니다.

chmod 700 ~/.ssh && chmod 600 ~/.ssh/* \
&& chmod 644 ~/.ssh/authorized_keys \
&& chown -r <username>:<username> /home/<username>/.ssh \
&& chown -r <username>:<username> /home/<username>/.ssh/*

그래도 문제가 해결되지 않으면 Authorized_keys를 제거하고 다시 생성하여 (소유권 및 권한에주의) 메모장이나 다른 적절한 텍스트 편집기에서 내용을 복사해야합니다. 워드 패드 및 기타 뚱뚱한 편집자들은 키를 엉망으로 만들 수 있습니다. known_hosts 파일에서 원격 호스트 항목을 제거 할 수도 있습니다. 나는 무언가를 위해 한 번 그 일을해야했던 것을 기억합니다.


당신의 authorized_keys를 의미 - 당신은 < "문제가 해결되지 않으면, 내가 authorized_을 제거 할 것"쓰기
barlop

예, authorized_keys ^ _ ^ (편집)
Alex Atkinson

authorized_keys 및 id_rsa.pub 파일의 크기가 다른 것 같습니다. 이것이 문제라고 생각합니다.
Jacob Hume

@JacobHume Authorized_keys에 id_rsa.pub 등이있을 수 있으므로이 문장에 대해 자세히 설명해야합니다
barlop

"known_hosts 파일에서 원격 호스트 항목을 제거 할 수도 있습니다"또는 <known_hosts 파일을 원격으로 작성할 수도 있습니다. known_hosts 문제는 그의 질문에있는 문제가 아니지만. known_hosts 문제는 주요 변경 사항에 대한 심각한 오류입니다.
barlop

1

/var/log/auth.log의견에 명시된대로 확인하십시오 . 거의 항상 거기에서 답을 찾을 수 있습니다.

서버 및 로컬에 대해 이러한 권한이 설정되어 있습니다.

섬기는 사람

drwx------ remoteuser group ~/.ssh
-rw------- remoteuser group ~/.ssh/authorized_keys

토지 상에서

drwx------ user group ~/.ssh
-rw------- user group ~/.ssh/id_rsa
-rw----r-- user group ~/.ssh/id_rsa.pub

호기심으로 authorized_keys파일을 다른 사람이 읽을 수있는 이유는 무엇입니까? authorized_keys파일이 600 이 아니 어야합니까?
JW0914

잘 잡았습니다. 이것은 정말 오래된 반응이므로 편집해야 할 것입니다.
9
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.