Permiso denegado para conectarse a Amazon EC2 utilizando SSH en Windows 8

Estoy comenzando a usar el service Amazon EC2. He instalado una instancia de Amazon Linux, configuré el file PEM, abrí los puertos SSH e instalé un service GIT.

Mi entorno local es Windows 8.

A través de Putty y WinSCP me puedo conectar sin problemas. Seguí los documentos y convertí mi file PEM a PPK y todo funciona bien. El problema es cuando trato de hacer un git push desde mi máquina local. Siempre obtengo un "permiso denegado (key pública)" cuando bash conectarme. He hecho un ssh-add al file PEM usando git bash, generé una key personalizada a través del GIT Bash y agregué esta key a los pares de keys en la instancia EC2 y nada funciona …

Si bash (usando git bash) un ssh -i y especifico el file PEM, tengo una connection.

ssh -ic:/[PATH]/[PEM-FILE].pem ec2-user@[HOST].compute.amazonaws.com 

Si bash sin -i, sin connection.

 $ ssh ec2-user@[HOST].compute.amazonaws.com Permission denied (publickey). 

Aquí sigue el seguimiento con el command -vT:

 ssh -vT ec2-user@[HOST].compute.amazonaws.com OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007 debug1: Connecting to [HOST].compute.amazonaws.com [54.201. 110.48] port 22. debug1: Connection established. debug1: identity file [PATH]/Usuario/.ssh/identity type -1 debug1: identity file [PATH]/Usuario/.ssh/id_rsa type 1 debug1: identity file [PATH]/Usuario/.ssh/id_dsa 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_4.6 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc 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: Host '[HOST].compute.amazonaws.com' is known and ma tches the RSA host key. debug1: Found key in [PATH]/Usuario/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey debug1: Next authentication method: publickey debug1: Trying private key: [PATH]/Usuario/.ssh/identity debug1: Offering public key: [PATH]/Usuario/.ssh/id_rsa debug1: Authentications that can continue: publickey debug1: Trying private key: [PATH]/Usuario/.ssh/id_dsa debug1: No more authentication methods to try. Permission denied (publickey). 

Entonces, ¿hay una forma de conectarse a través de SSH sin la opción -i?

Después de varios bashs, encontré un artículo con algunas instrucciones aquí https://serverfault.com/questions/194567/how-do-i-tell-git-for-windows-where-to-find-my-private-rsa- llave

Seguí estos pasos: "Después de tener el directory de inicio, y una carpeta .ssh debajo de eso, desea abrir PuTTYgen y abrir la key (file .ppk) que ha creado previamente. Una vez que su key está abierta, desea seleccionar Conversiones -> Exporte la key OpenSSH y guárdela en HOME.ssh \ id_rsa. Después de que tenga la key en esa location, Git bash reconocerá la key y la usará ".

@Everton Menonca'a también me pareció genial. Me salvó el día de hecho. Solo por el bien de más detalles, voy a mencionar mi caso:

  • Cargue la key privada (generada por EC2) en su PuTTYgen, y desde allí, exporte la key OpenSSH.
  • Coloque el file exportado en el directory principal de todas las teclas. En mi caso (Windows) era C:\Users\USERNAME\.ssh
  • Como tengo varios controles remotos a los que me estoy conectando para usar Bash, actualicé mi file de config (en el mismo directory), agregando input adicional, para que sea como la siguiente:

     Host bitbucket.org IdentityFile ~/.ssh/id_rsa1 Host ec2-00-00-000-00.compute-1.amazonaws.com IdentityFile ~/.ssh/id_rsa2 

Eso es todo