Comportamento estranho no login da chave pública SSH

Comportamento estranho no login da chave pública SSH

Estou realmente preso aqui. Tenho tentado fazer ssh em meu servidor ec2 localmente com uma chave pública, mas não está funcionando. -> Recebo permissão negada (chave pública).

A configuração é a seguinte: Local: par de chaves públicas gerado e conteúdo copiado de id_rsa.pub. Remoto: ssh-ed em meu servidor EC2 com o arquivo PEM e colei o conteúdo id_rsa.pub na nova linha do arquivo de chaves autorizadas na pasta .ssh.

Deve funcionar certo? Percebi que um erro comum são as permissões, mas as minhas parecem estar definidas corretamente:

Permissões remotas:

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

e em .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

Local:

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

e em .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

Mas quando eu corro:

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

ele retorna:

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).

O estranho é que POSSO fazer login com chave pública no servidor do meu outro servidor ec2.Então o problema parece estar na minha máquina local, não o controle remoto.

Por favor ajude!

Responder1

Problemas de SSH podem ser um incômodo. Eu sempre começo com o seguinte. Tenho os comandos salvos em uma folha de dicas para nunca ter medo de erros de digitação.

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/*

Se isso não funcionar, eu removeria as chaves_autorizadas e as criaria novamente (lembre-se da propriedade e das permissões), certificando-se de copiar o conteúdo do bloco de notas ou de outro editor de texto adequado. O Wordpad e outros editores gordos podem bagunçar as teclas. Você também pode remover a entrada do host remoto do arquivoknown_hosts. Lembro-me de ter que fazer isso uma vez por alguma coisa.

Responder2

Certifique-se de verificar /var/log/auth.logconforme indicado no comentário. Quase sempre você encontrará sua resposta lá.

Tenho estas permissões definidas para meus servidores e localmente:

Servidor

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

Localmente

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

informação relacionada