Posibles motivos del tiempo de espera al intentar acceder a la instancia EC2

102

No puedo SSH en mi instancia - Se agotó el tiempo de espera de la operación. ¿Cuáles podrían ser las razones y qué puedo hacer para resolverlo? El reinicio normalmente tarda mucho en surtir efecto y puede empeorar las cosas

ACTUALIZACIÓN: No se trata de permisos, puedo iniciar sesión normalmente sin problemas. Sospecho que podría deberse a problemas de memoria.

ming yeow
fuente
3
Debería probar serverfault.com ya que esta no es realmente una pregunta de programación.
rwilliams
Cortafuegos SSH escuchando en ese puerto?
OMG Ponies
1
¿El problema persiste si lanza otra instancia? (También podría ser útil saber más sobre su configuración). Actualicé mi respuesta.
Jonik
primero haga ping al DNS. Si falla, configure sus reglas de entrada / salida en el asistente de inicio. configure TODO el tráfico y TODO el protocolo y simplemente guarde con las opciones predeterminadas. Haga ping de nuevo con su sistema local y luego debería funcionar.
Maiden

Respuestas:

67

¿Estableció un grupo de seguridad adecuado para la instancia? Es decir, uno que permita el acceso desde su red al puerto 22 de la instancia. (De forma predeterminada, no se permite todo el tráfico).

Actualización: Ok, no es un problema de grupo de seguridad. Pero, ¿persiste el problema si inicia otra instancia desde la misma AMI e intenta acceder a ella? Tal vez esta instancia EC2 en particular falló aleatoriamente de alguna manera; es solo cuestión de tiempo que suceda algo así. (Lectura recomendada: Architecting for the Cloud: Best Practices (PDF), un artículo de Jinesh Varia, un evangelista de servicios web en Amazon. Vea especialmente la sección titulada "Diseñe para fallar y nada fallará").

Jonik
fuente
Esto es lo mismo en las preguntas frecuentes de EC2: developer.amazonwebservices.com/connect/… (Además ec2-authorize, puede usar la extensión Elasticfox Firefox para configurar fácilmente los grupos).
Jonik
1
Dios mío ... abrir el puerto SSH en el grupo es tan básico, no puedo creer que no esté aquí: alestic.com/2009/08/ec2-connectivity . Gracias por mencionarlo.
mtyson
¡Oh, me olvidé por completo del grupo de seguridad! ¡Gracias!
Antonio Beno
91

Tuve el mismo problema y la solución terminó agregando la IP de mi máquina local a la lista de reglas de entrada en el grupo de seguridad activo. En el cuadro de diálogo de entrada a continuación, ingrese 22 en el rango de puertos, su IP / 32 local en el campo de origen y deje 'regla tcp personalizada' en el menú desplegable.

ingrese la descripción de la imagen aquí

ted.strauss
fuente
6
Después de presionar el botón 'agregar regla', también debe presionar 'aplicar cambio de regla' para que surta efecto. No olvide esto. Me arruinó un par de veces.
ted.strauss
¡Mil gracias por esto!
Hego555
¡Respuesta perfecta! Ya no tengo miedo de ser pirateado: D
softvar
2
esto funcionó para mí, gracias !! Por alguna razón, mi dirección IP cambió y, de repente, no pude acceder a mi instancia ec2. Acabo de agregar una regla, y en lugar de poner una dirección IP "personalizada", simplemente seleccioné 'mi IP' y wala ... ¡pude ingresar!
rikkitikkitumbo
¡Buena respuesta! También encontré esta solución de problemas de AWS muy útil, y contiene el punto sugerido aquí arriba.
J0ANMM
28

Destruye y crea de nuevo

Tenía una zona de disponibilidad donde podía conectarme y otra donde no podía. Después de unas horas, me frustré tanto que borré todo lo que había en esa zona de disponibilidad.

Construyendo todo de nuevo tenía que asegurarme de crear TODO. Esto incluyó:

  • Crear VPC
    • CIDR: 10.0.0.0/24
  • Crear puerta de enlace de Internet
  • Adjuntar Internet Gateway a la VPC
  • Crear tabla de enrutamiento
  • Agregar ruta a la tabla de enrutamiento
    • Destination: 0.0.0.0/0
    • Target: <Internet Gateway from earlier>
  • Crear subred
    • CIDR: 10.0.0.0/24
    • Routing Table: <Routing Table from earlier

Me tomó MUCHO torpeza conseguir todo esto. Ordené los pasos de la manera que creo que podría ser más eficiente, pero es posible que deba ajustarlos para que un elemento esté disponible para el siguiente.

Sugerencia

No estoy sugiriendo que se convierta en termo nuclear como yo. Te ofrezco toda esta información para que puedas comprobar estas asociaciones y asegurarte de que las tuyas son las adecuadas.

Bruno Bronosky
fuente
6
¡Esto realmente me ayudó! Tuve un caso en el que mi tabla de enrutamiento no apuntaba a una puerta de enlace de Internet y ese fue el único problema.
EdgeCaseBerg
Honestamente, documenté estas cosas en SO y en github / gists porque sé que me patearé cuando necesite hacerlo nuevamente en 2 meses. Espero que también ayude a otros. Pero en última instancia, solo soy un desastre egoísta. Gracias por tomarse el tiempo para comentar, @EdgeCaseBerg.
Bruno Bronosky
2
Gracias un TON @BrunoBronosky. Exactamente, si esa cosa de "puerta de enlace de Internet" es así, ¿por qué la documentación predeterminada de AWS no lo menciona? :(
Anand
1
@BrunoBronosky ¡gracias! Esto es exactamente lo que me impedía conectarme a la instancia. Guardaré estos pasos para mi futuro yo.
saiyancoder
21

Esta respuesta es para los tontos (como yo). El DNS público de su EC2 podría (cambiará) cuando se reinicie. Si no se da cuenta de esto e intenta SSH en su antiguo DNS público, la conexión se detendrá y expirará. Esto puede llevarlo a asumir que algo está mal con su EC2 o grupo de seguridad o ... No, solo SSH en el nuevo DNS. ¡Y actualice su ~/.ssh/configarchivo si es necesario!

dslosky
fuente
Una hora solucionando mis problemas de tiempo de espera y esta fue la solución. Gracias :)
Eric D. Brown
2
Muchas gracias @dslosky me salvaste la vida. :)
A_01
13

Para conectarse use ssh así:

ssh -i keyname.pem [email protected]

Donde keyname.pemestá el nombre de su clave privada, usernamees el nombre de usuario correcto para la distribución de su sistema operativo y xxx.xx.xxx.xxes la dirección IP pública.

Cuando se agota el tiempo de espera o falla, verifique lo siguiente:

Grupo de seguridad

Asegúrese de tener una regla de entrada para el puerto tcp 22 y para todos los ips o su ip. Puede encontrar el grupo de seguridad a través del menú ec2, en las opciones de instancia.

Tabla de ruteo

Para una nueva subred en un vpc, debe cambiar a una tabla de enrutamiento que apunte 0.0.0.0/0 al destino de la puerta de enlace de Internet . Cuando crea la subred en su vpc, de forma predeterminada asigna la tabla de enrutamiento predeterminada, que probablemente no acepta el tráfico entrante de Internet. Puede editar las opciones de la tabla de enrutamiento en el menú vpc y luego en las subredes.

IP elástica

Para una instancia en un vpc, debe asignar una dirección IP pública elástica y asociarla con la instancia. No se puede acceder a la dirección IP privada desde el exterior. Puede obtener una ip elástica en el menú ec2 (no en el menú de instancia).

Nombre de usuario

Asegúrate de estar usando el nombre de usuario correcto . Debe ser uno de ec2-usero rooto ubuntu. Pruébelos todos si es necesario.

Llave privada

Asegúrate de estar usando la clave privada correcta (la que descargas o eliges al iniciar la instancia). Parece obvio, pero copiar y pegar me consiguió dos veces.

AJcodez
fuente
1
Gracias por esto, siempre me olvido de agregar 0.0.0.0/0 al destino de la puerta de enlace de Internet cuando creo una nueva VPC
Chathushka
7

¿Ha mirado la salida de la consola de la instancia? Puede hacerlo a través de la consola de AWS (Instancias -> Haga clic con el botón derecho en la instancia -> Obtener registro del sistema). He tenido ocasiones en las que los servicios de red en una instancia EC2 no se iniciaron correctamente, lo que resultó en conexiones SSH agotadas; reiniciar la instancia generalmente solucionó las cosas.

gareth_bowles
fuente
3

ingrese la descripción de la imagen aquí

DESPUÉS DE 2 HORAS ENCONTRÉ ESTO

Tenga en cuenta que ssh ip 120.138.105.251/32

  • NO ES DIRECCIÓN IP de instancia de AWS

  • No es tu ip local 127.0.0.1

  • No es tu ip local localhost

PERO PERO PERO

Es su dirección IP pública de su computadora personal desde la que intenta acceder a la instancia de aws

  1. Vaya a https://www.whatismyip.com/ cualquier dirección IP que ponga en ssh

SI QUIERES ABRIR COMPLETAMENTE SSH A TODAS LAS DIRECCIONES IP ingrese la descripción de la imagen aquí

ASÍ SE VE TOTALMENTE ACCESIBLE LAS ENTRADAS - BÁSICO RECOMENDADO ingrese la descripción de la imagen aquí

ESTO ES LO QUE ESTOY UTILIZANDO EN PRODUCCIÓN ingrese la descripción de la imagen aquí

vijay
fuente
2

Los siguientes son posibles problemas:

  • Lo más probable es que el grupo de seguridad no esté configurado correctamente para proporcionar acceso SSH en el puerto 22 a su ip El cambio en la configuración de seguridad no requiere reiniciar el servidor para que sea efectivo, pero debe esperar unos minutos para que sea efectivo. aplicable.

  • La configuración del firewall local no permite el acceso SSH al servidor. (puede probar una conexión a Internet diferente, su teléfono / dongle para probarlo)

  • El servidor no se inicia correctamente (las comprobaciones de acceso fallarán incluso en la consola de Amazon), en cuyo caso deberá detener e iniciar el servidor.

pradosh nair
fuente
En mi caso, fue un problema de firewall en la red en la que trabajo. Usar una VPN para circunnavegar funcionó.
MDave
1

Consulte esta página de ayuda en los documentos de AWS:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html#TroubleshootingInstancesConnectionTimeout Probablemente encontrará su solución allí. para mí esta parte hizo la solución:

[EC2-VPC] Verifique la tabla de enrutamiento de la subred. Necesita una ruta que envíe todo el tráfico destinado fuera de la VPC a la puerta de enlace de Internet de la VPC.

  • Abra la consola de Amazon VPC en https://console.aws.amazon.com/vpc/ .

  • En el panel de navegación, elija Internet Gateways. Verifique que haya una puerta de enlace de Internet conectada a su VPC. De lo contrario, elija Create Internet Gateway y siga las instrucciones para crear una puerta de enlace de Internet, seleccione la puerta de enlace de Internet y luego elija Attach to VPC y siga las instrucciones para adjuntarla a su VPC.

  • En el panel de navegación, elija Subredes y luego seleccione su subred.

  • En la pestaña Tabla de rutas, verifique que haya una ruta con 0.0.0.0/0 como destino y la puerta de enlace de Internet para su VPC como destino. De lo contrario, elija el ID de la tabla de rutas (rtb-xxxxxxxx) para navegar a la pestaña Rutas de la tabla de rutas, elija Editar, Agregar otra ruta, ingrese 0.0.0.0/0 en Destino, seleccione su puerta de enlace de Internet en Destino y luego elija Guardar.

Pero le sugiero que consulte todas las opciones que cubre el enlace anterior, puede encontrar allí uno o más problemas que tiene.

Meltzer
fuente
1

Mi problema: tenía el puerto 22 abierto para "Mi IP" y cambié la conexión a Internet y el cambio de dirección IP causado. Así que tuve que volver a cambiarlo.

smDev
fuente
1

Partiendo de @ted.straussla respuesta, puede seleccionar SSHy MyIPdel menú desplegable en lugar de navegar a un sitio de terceros.

Adam J. Gramling
fuente
1

Simplemente reinicie la instancia Ec2 una vez que haya aplicado las reglas

Shaz
fuente
1

Permita ssh y el puerto 22 desde ufw, luego habilítelo y verifique con el comando de estado

sudo ufw allow ssh
sudo ufw allow 22
sudo ufw enable
sudo ufw status
Jagannath Swarnkar
fuente
0

Una posibilidad más. Los grupos de seguridad de AWS están configurados para funcionar solo con direcciones IP entrantes específicas. Si su grupo de seguridad está configurado de esta manera, usted (o el titular de la cuenta) deberá agregar su dirección IP al grupo de seguridad. Todo esto, abra su panel de AWS, seleccione grupos de seguridad, seleccione un grupo de seguridad y haga clic en la pestaña de entrada. Luego agregue su IP según corresponda.

LA Ferguson
fuente
0

Tuve el mismo problema y la solución fue permitir el acceso desde cualquier lugar a la lista de reglas de entrada en el grupo de seguridad activo. En el cuadro de diálogo de entrada, ingrese 22 en el rango de puertos, en cualquier lugar del campo de origen, y seleccione 'ssh' en el menú desplegable.

PD: Es posible que esta no sea la solución recomendada, ya que significa que esta instancia se puede ssh'ed desde cualquier máquina, pero no pude hacer que funcione con mi IP local.

Yahya
fuente
0

Tuve un problema similar cuando estaba usando Wifi público, que no tenía contraseña. Cambiar la conexión de Internet a una conexión segura resolvió el problema.

Bharat Ram
fuente
0

Si el acceso SSH no funciona para su instancia EC2, debe verificar:

  • El grupo de seguridad de su instancia permite el acceso SSH entrante (verifique: ver reglas ).

Si está utilizando una instancia de VPC (tiene el ID de VPC y el ID de subred adjuntos a su instancia), verifique:

  1. En el Panel de VPC, busque el ID de subred usado que está adjunto a su VPC.
  2. Verifique su tabla de ruta adjunta que debe tener 0.0.0.0/0como destino y su puerta de enlace de Internet como destino.

En Linux, también puede verificar la información de ruta en el registro del sistema en redes de la instancia, por ejemplo:

++++++++++++++++++++++++++++++++++++++Net device info+++++++++++++++++++++++++++++++++++++++
+--------+------+------------------------------+---------------+-------+-------------------+
| Device |  Up  |           Address            |      Mask     | Scope |     Hw-Address    |
+--------+------+------------------------------+---------------+-------+-------------------+
|   lo   | True |          127.0.0.1           |   255.0.0.0   |   .   |         .         |
|  eth0  | True |         172.30.2.226         | 255.255.255.0 |   .   | 0a:70:f3:2f:82:23 |
+--------+------+------------------------------+---------------+-------+-------------------+
++++++++++++++++++++++++++++Route IPv4 info+++++++++++++++++++++++++++++
+-------+-------------+------------+---------------+-----------+-------+
| Route | Destination |  Gateway   |    Genmask    | Interface | Flags |
+-------+-------------+------------+---------------+-----------+-------+
|   0   |   0.0.0.0   | 172.30.2.1 |    0.0.0.0    |    eth0   |   UG  |
|   1   |   10.0.3.0  |  0.0.0.0   | 255.255.255.0 |   lxcbr0  |   U   |
|   2   |  172.30.2.0 |  0.0.0.0   | 255.255.255.0 |    eth0   |   U   |
+-------+-------------+------------+---------------+-----------+-------+

donde las UGbanderas le muestran su puerta de enlace de Internet.

Para obtener más detalles, consulte: Solución de problemas de conexión a su instancia en Amazon docs.

Kenorb
fuente
0

Para habilitar el acceso ssh desde Internet para instancias en una subred de VPC, haga lo siguiente:

  • Conecte una puerta de enlace de Internet a su VPC.
  • Asegúrese de que la tabla de rutas de su subred apunte a la puerta de enlace de Internet.
  • Asegúrese de que las instancias de su subred tengan una dirección IP única a nivel mundial (dirección IPv4 pública, dirección IP elástica o dirección IPv6).
  • Asegúrese de que su control de acceso a la red (a nivel de VPC) y las reglas del grupo de seguridad (a nivel ec2) permitan que el tráfico relevante fluya hacia y desde su instancia. Asegúrese de que la dirección IP pública de su red esté habilitada para ambos. De forma predeterminada, Network AcL permite todo el tráfico entrante y saliente, excepto que se configure explícitamente de otro modo
Anigbo inocente
fuente
0

Para mí, fue el servidor apache alojado en una instancia EC2 t2.micro linux, no la instancia EC2 en sí.

Lo arreglé haciendo:

sudo su

service httpd restart

Gus
fuente
0

Tuve el mismo problema y lo resolví agregando una regla a los Grupos de seguridad

SSH entrante 0.0.0.0/0

O puede agregar su dirección IP solamente

Majali
fuente
0

Para mí, fue que borré todo del volumen de arranque. Y ya no podía conectarse a la instancia.

t_sologub
fuente
0

Estaba trabajando en la instancia y estaba bien, al día siguiente, cuando intenté SSH en mi instancia, decía: Tiempo de espera de conexión.

Traté de leer esta publicación pero nada funcionó. Así que lo hice -

En la Edit inbound rulescolumna de origen, elija MY IPy automáticamente completará su dirección IP pública en formato CIDR ( XXX.XXX.XXX.XX/32).

Intenté con la respuesta @ ted.strauss dando una IP local pero no ayudó en mi caso. Así que elegí MI IP y funcionó.

¡Espero que esto ayude a alguien!

descabellado
fuente
0

primero haga ping al DNS. Si falla, configure sus reglas de entrada / salida en el asistente de inicio. configure TODO el tráfico y TODO el protocolo y simplemente guarde con las opciones predeterminadas. Haga ping de nuevo con su sistema local y luego debería funcionar

Doncella
fuente
0

Si acaba de crear una nueva instancia y no puede conectarse a ella, pude resolver el problema finalizando esa y creando una nueva. Por supuesto, esto solo funcionará si es una instancia nueva y no ha trabajado más en ella.

José del Valle
fuente