Las dificultades de conectarse a AWS desde un terminal Linux

Conectarme a una máquina (instancia) con AWS sieeeempre me da algún problema. Así que voy a publicar la lista de dificultades habituales con los que me suelo encontrar y cómo resolverlas.

Ten en cuenta que mi método de conexión es a través de un terminal Linux.

Esta no es una guía paso a paso, para eso, los de Amazon AWS ya tienen su propia guía. Este post es para resolver los problemas que yo me suelo encontrar.

El comando que uso para comentarte es algo así:

ssh ubuntu@ec2-35-156-22-215.eu-west-4.compute.amazonaws.com -i mi-clave-privada-aws.pem

Nota: no copies y peques esto porque no te funciona seguro (de hecho la IP es ficticia).

Too many authentication failures

En mi caso suele ser por esta razón:

Yo tengo una carpeta .ssh donde tengo un montón de llaves ssh. Al intentar conectarse, ssh va probando todas esas llaves. Supongo que después de todas probará con mi-clave-privada-aws.pem. Como tengo tantas claves privadas se alcanza el número máximo de intentos de conexión (que no se cuántos intentos son ni me he molestado en cambiarlo).

El problema es que la opción -i de ssh que te recomienda AWS no hace que se use esa llave en lugar de las que ya tienes. En lugar de eso usa todas las que tienes en la carpeta .ssh y, además, la que indiques con la opción -i.

Solución:

Añade la opción:

-o "IdentitiesOnly=yes"

Con lo que te quedaría algo como ésto:

ssh ubuntu@ec2-35-156-22-215.eu-west-4.compute.amazonaws.com -i mi-clave-privada-aws.pem -o "IdentitiesOnly=yes"

Permission denied (publickey)

Esto puede ser por varias razones:

1) Te has equivocada con el nombre de usuario. Cada tipo de instancia suele venir con un usuario por defecto. En su guía han puesto una lista (echa un vistazo a la lista de AWS que puede cambiar):

  • Para Amazon Linux 2 or the Amazon Linux AMI -> ec2-user.
  • Para Centos AMI, -> centos.
  • Para Debian AMI, -> admin o root.
  • Para Fedora AMI,-> ec2-user o fedora.
  • Para RHEL AMI, -> ec2-user o root.
  • Para SUSE AMI, -> ec2-user o root.
  • Para Ubuntu AMI, -> ubuntu.

2) Te has olvidado de indicar tu llave privada (el fichero .pem). Sí, a veces pasa.

Connection timed out (el servidor tarda un montón de tiempo en contestar)

Aquí es posible que sea porque te falte alguna regla “inbound” (de tráfico de entrada) en la configuración de la instancia. Si es así sigue las instrucciones para crear una regla de éstas.

También es posible que te estés conectando desde una IP no indicada en ninguna de las reglas de tráfico de entrada. Puedes añadir tu IP a una regla o puedes usar la IP 0.0.0.0/0 (para IPv4) o ::/0 (para IPv6). Ten en cuenta que si usas estas dos se pueden intentar conexiones a la instancia desde cualquier IP.


Espero que te haya sido de utilidad y hayas podido solucionar el problema. Si es así añade un comentario y si no es así escribe a ver si podemos ayudarte entre todos.