Saltar al contenido

¿Por qué no puedo conectarme a mi instancia de Amazon EC2?

11 minutos de lectura
0

Cuando intento conectarme a mi instancia de Amazon Elastic Compute Cloud (Amazon EC2), aparece un error.

Descripción corta

En primer lugar, comprueba la configuración de la instancia de EC2 y asegúrate de que la instancia supera los estados de la instancia y del sistema.

Si aún no puedes conectarte, restaura tu conexión de SSH, EC2 Instance Connect o el Administrador de sesiones, una capacidad de AWS Systems Manager. O bien, utiliza la consola serie de EC2 para restablecer la conexión.

Nota: Por lo general, la consola serie de EC2 se usa solo para solucionar problemas, no para realizar procesos estándar.

Si un método de conexión no funciona, usa otro método de conexión para acceder a tu instancia y solucionar los problemas.

Si sigues sin poder restaurar la conexión, usa una instancia de rescate para comprobar si hay errores en los registros de la instancia afectada.

Resolución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Comprobación de la configuración del acceso a la instancia

Revisión de las reglas del grupo de seguridad

Las reglas del grupo de seguridad entrante deben permitir el acceso desde tu dirección IP al puerto 22 para Linux y al puerto 3389 para Windows.

Para comprobar las reglas de tu grupo de seguridad, ejecuta el siguiente comando describe-security-groups de la AWS CLI:

aws ec2 describe-security-groups --group-ids SG-IDs

Nota: Sustituye SG-IDs por los ID de tus grupos de seguridad.

Si los puertos 22 o 3389 no están en tu lista de puertos permitidos, ejecuta el siguiente comando authorize-security-group-ingress para actualizar tus reglas y permitir el acceso:

aws ec2 authorize-security-group-ingress --group-id SG-ID --protocol tcp --port 22 --cidr SOURCE-IP/32

Nota: Sustituye SG-ID por el ID de tu grupo de seguridad y SOURCE-IP por tu dirección IP de origen. Si usas una instancia de Windows, reemplaza 22 por 3389. Si la dirección IP de origen es una dirección IP pública, puedes usar la herramienta checkip.amazonaws.com para identificar la dirección IP.

Revisión de las ACL de la red

De forma predeterminada, las listas de control de acceso de la red (ACL de la red) permiten todo el tráfico entrante y saliente. Asegúrate de que las ACL de la red permitan el acceso SSH entrante a la instancia y el acceso saliente a los puertos efímeros (1024-65535). Si las ACL de la red bloquean el puerto 22 o 3389, agrega una nueva regla para permitir el tráfico. Para las direcciones IP públicas, asegúrate de que la tabla de enrutamiento tenga una entrada que dirija el tráfico a una puerta de enlace de Internet.

Consulta de la tabla de enrutamiento

Comprueba que la tabla de enrutamiento tenga una ruta para la conexión.

Asegúrate de que la instancia supere las comprobaciones de estado

Para conectarte a una instancia, la instancia debe pasar sus comprobaciones de estado. Utiliza la consola de Amazon EC2 para comprobar si el estado del sistema y el estado de la instancia muestran que son correctos. También puedes usar las métricas de Amazon CloudWatch para comprobar el estado de la instancia e identificar los problemas que afectan a la conectividad.

Nota: Se recomienda comprobar el mantenimiento programado y otros eventos que puedan afectar a la conectividad de la instancia.

Si el estado de la instancia no es correcto, reinicia la instancia. El reinicio de una instancia normalmente resuelve problemas menores. Si sigues sin poder conectarte o el estado del sistema no es correcto, es posible que el problema esté relacionado con la infraestructura de AWS. Para resolver este problema, consulta ¿Por qué mi instancia de Amazon EC2 no funciona debido a un error en la comprobación del estado del sistema?

Si sigues teniendo problemas, consulta ¿Cómo soluciono los errores de comprobación de estado en mi instancia de EC2 de Linux?o ¿Por qué mi instancia de EC2 de Windows no funciona debido a un error en la comprobación del estado de la instancia?

Solución de errores de conexión

Si la instancia supera las comprobaciones de estado, pero se producen errores de conexión, consulta los siguientes recursos:

Restauración de la conexión SSH

Nota: Si has perdido tu par de claves SSH, consulta ¿Cómo me conecto a mi instancia de Amazon EC2 si pierdo mi par de claves SSH tras el lanzamiento inicial de la instancia?

Revisión de la configuración del nombre de usuario y dirección IP

Asegúrate de usar el nombre de usuario correcto para tu instancia. A continuación, conéctate a la instancia desde una dirección IP pública.

Nota: Si te conectas desde una dirección IP privada, asegúrate de tener una conexión de red que funcione con la instancia de destino.

Comprobación del estado del servidor SSH

Para comprobar el estado del servidor SSH, utiliza el Administrador de sesiones, EC2 Instance Connect o la consola serie de EC2 para conectarte a la instancia.

Ejecuta el siguiente comando para comprobar el estado del servicio SSH en función de tu distribución:

Sistemas que usan systemd:

sudo systemctl status sshd

Sistemas Ubuntu o Debian:

sudo systemctl status ssh

Sistemas heredados, como CentOS 6:

sudo service sshd status

Si el estado del servicio SSH es Detenido, ejecuta el siguiente comando para iniciar el servicio según tu distribución:

Sistemas que usan systemd:

sudo systemctl start sshd

Sistemas Ubuntu o Debian:

systemctl start ssh

Sistemas heredados, como CentOS 6:

sudo service sshd start

Revisión de los permisos de los archivos de claves privadas

Asegúrate de que tu archivo de clave privada tenga el permiso de lectura necesario.

Prueba de la conectividad de la red

Para probar la conectividad con el puerto 22, ejecuta uno de los siguientes comandos desde el cliente:

nc -zv Host 22

Alternativa:

telnet Host 22

Nota: Sustituye el host por tu dirección IP o el nombre de dominio completo (FQDN).

A continuación, ejecuta el siguiente comando para usar la conexión SSH a tu instancia en modo detallado:

ssh -i key_pair.pem user@Host -vvv

Nota: Sustituye el host por tu dirección IP o el FQDN.

Para solucionar problemas de conexión, consulta ¿Cómo soluciono los errores de «Connection refused» o «Connection timed out» cuando uso SSH para conectarme a mi instancia de EC2? y Solución de los problemas de conexión a la instancia de Linux de Amazon EC2.

Restauración de la conexión de EC2 Instance Connect

En primer lugar, utiliza SSH, el Administrador de sesiones o la consola serie de EC2 para conectarte a la instancia y asegurarte de que has instalado EC2 Instance Connect. A continuación, utiliza EC2 Instance Connect para conectarte a la instancia.

Si tienes problemas al usar la EC2 Instance Connect, asegúrate de permitir el tráfico SSH entrante en el puerto 22 para el nombre de la lista de prefijos com.amazonaws.region.ec2-instance-connect. Además, comprueba que la política de usuario de AWS Identity and Access Management (IAM) incluya la acción ec2-instance-connect:SendSSHPublicKey.

Si sigues teniendo problemas, consulta ¿Cómo soluciono los errores que recibo cuando uso EC2 Instance Connect para conectarme a mi instancia de EC2?

Uso de la consola serie de EC2 para restablecer la conexión

Requisito previo: Configura el acceso a la consola serie de EC2.

Para usar la consola serie de EC2 para conectarte a tu instancia, puedes usar la consola de Amazon EC2 o SSH. Para obtener más información, consulta ¿Cómo accedo a la consola serie de EC2 de una instancia de Linux inalcanzable o inaccesible?

Después de conectarte, soluciona los problemas de arranque, configuración de red u otros problemas de la instancia.

Si tienes problemas al usar la consola serie de EC2, asegúrate de que tu política de IAM incluya la acción ec2-instance-connect:SendSerialConsoleSSHPublicKey.

Restablecimiento de la conexión con el Administrador de sesiones

El Administrador de sesiones administra la autenticación solo mediante roles y permisos de IAM, en lugar de mediante claves SSH. Antes de usar el Administrador de sesiones, asegúrate de cumplir los requisitos previos del Administrador de sesiones. Luego, usa el Administrador de sesiones para conectarte a tu instancia.

Si tienes problemas al usar el Administrador de sesiones, toma las siguientes medidas.

Comprobación de los roles de IAM

Confirma que la instancia tiene un rol de IAM con la política AmazonSSMManagedInstanceCore adjunta.

O bien, asegúrate de que el rol tenga los siguientes permisos necesarios:

  • ssmmessages:CreateControlChannel
  • ssmmessages:CreateDataChannel
  • ssmmessages:OpenControlChannel
  • ssmmessages:OpenDataChannel

Puedes agregar los permisos necesarios del Administrador de sesiones a un rol existente.

Nota: Si utilizas la configuración de administración de hosts predeterminada para administrar tus instancias, no necesitas crear un perfil de instancia de IAM para administrar las instancias.

Si actualizas los permisos, desconecta y vuelve a adjuntar el rol de IAM. Espera un par de minutos y, a continuación, inicia AWS Systems Manager Agent (SSM Agent) o inicia la instancia.

Solución de problemas del estado de SSM Agent

Comprueba que has instalado SSM Agent en la instancia.

Usa SSH, EC2 Serial Console o EC2 Instance Connect para conectarte a la instancia. Luego, ejecuta el siguiente comando para comprobar el estado de SSM Agent en función de tu distribución.

Sistemas que usan systemd:

sudo systemctl status amazon-ssm-agent

Sistemas Debian o Ubuntu:

sudo systemctl status snap.amazon-ssm-agent.amazon-ssm-agent.service

Si el estado del agente es Detenido, ejecuta el siguiente comando para iniciarlo, según tu distribución.

Sistemas que usan systemd:

sudo systemctl start amazon-ssm-agent

Sistemas Debian o Ubuntu:

sudo systemctl start snap.amazon-ssm-agent.amazon-ssm-agent.service

Para comprobar que SSM Agent se está ejecutando, comprueba el registro del sistema.

Se recomienda utilizar la versión más reciente de SSM Agent. Para comprobar si tienes la versión más reciente, consulta amazon-ssm-agent/RELEASENOTES en el sitio web de GitHub. Si no tienes la versión más reciente, instala una versión actualizada de SSM Agent según tu sistema operativo (SO).

Para seguir solucionando problemas, comprueba si hay errores en los registros de /var/log/amazon/ssm/amazon-ssm-agent.log. O bien, soluciona los problemas de SSM Agent.

Comprobación de la conectividad de la red

Asegúrate de que las ACL y los grupos de seguridad de la red permitan una conexión saliente al punto de enlace de AWS Systems Manager en el puerto 443.

Si tu instancia no aparece en el Administrador de sesiones, consulta ¿Por qué Systems Manager no muestra mi instancia de Amazon EC2 como una instancia administrada?

Para las instancias privadas, crea puntos de enlace de nube virtual privada (VPC). En Nombre del servicio, selecciona com.amazonaws.REGION.ssm y com.amazonaws.REGION.ssmmessages.

Nota: Sustituye REGION por tu región de AWS.

El grupo de seguridad que adjuntes a los puntos de enlace de VPC debe permitir el tráfico entrante en el puerto 443.

Para obtener más información, consulta No se puede conectar a los puntos de enlace de SSM.

Comprobación para ver si faltan requisitos previos

Utiliza SSH, la consola serie de EC2 o EC2 Instance Connect para conectarte a la instancia y, a continuación, ejecuta el siguiente comando para solucionar problemas de disponibilidad de nodos administrados:

sudo ssm-cli get-diagnostics --output table

Comprueba el resultado para ver los requisitos previos del Administrador de sesiones que no hayas cumplido.

O bien, ejecuta un runbook de Systems Manager para comprobar automáticamente si faltan requisitos previos. Ejecuta AWSSupport-TroubleshootManagedInstance para comprobar la configuración de la VPC, incluidas las reglas de los grupos de seguridad, los puntos de enlace de VPC, las reglas de ACL de red, las tablas de enrutamiento y los perfiles de IAM. O bien, ejecuta AWSSupport-TroubleshootSessionManager para comprobar si cumples los requisitos previos del Administrador de sesiones.

Comprobación de los registros de la consola de instancias

Si no puedes usar los métodos anteriores para conectarte a tu instancia, ejecuta el siguiente script de datos de usuario para restaurar la conexión del Administrador de sesiones:

Content-Type: multipart/mixed; boundary="//"MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"

#!/bin/bash

sudo ssm-cli get-diagnostics --output table >> /dev/console
# or
sudo ssm-cli get-diagnostics --output table >> /dev/ttyS0

A continuación, comprueba la salida de la consola de instancias para identificar el paso de conexión que está fallando. Después de solucionar el problema del paso que está fallando, utiliza el Administrador de sesiones para probar la conexión.

Si sigues sin poder conectarte, usa una instancia de rescate para solucionar problemas de arranque.

Información relacionada

Solución de problemas con las instancias de Amazon EC2