Comportamento estranho no login da chave pública SSH

2

Estou muito preso aqui. Eu tenho tentado ssh em meu servidor ec2 do local com uma chave pública, mas não está funcionando. - > Eu recebo permissão Negada (chave pública).

A configuração é a seguinte: Local: gerado par de chaves públicas e conteúdo copiado de id_rsa.pub. Remoto: ssh-ed em meu servidor EC2 com o arquivo PEM e colei o conteúdo de id_rsa.pub em uma nova linha de 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 configuradas 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

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 eu posso fazer login com a chave pública para o servidor do meu outro servidor ec2. Então, o problema parece estar na minha máquina local , não no controle remoto.

Por favor, ajude!

    
por Rob360 27.07.2014 / 04:01

2 respostas

2

Problemas de SSH podem ser um incômodo. Eu sempre começo com o seguinte. Eu tenho os comandos salvos em uma folha de cola para que eu nunca tenha medo de digitar.

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, removerei authorized_keys e criei novamente (lembre-se da propriedade & permissões), certificando-se de copiar o conteúdo do bloco de notas ou outro editor de texto adequado. O Wordpad e outros editores gordos podem mexer nas teclas. Você também pode remover a entrada do host remoto do arquivo known_hosts. Lembro de ter feito isso uma vez por alguma coisa.

    
por 04.05.2015 / 21:46
1

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

Eu tenho essas 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
    
por 04.05.2015 / 21:22