Solución de problemas con la conexión a la instancia - Amazon Elastic Compute Cloud

Solución de problemas con la conexión a la instancia

La siguiente información puede ayudarle a solucionar problemas relacionados con la conexión a la instancia. Para obtener ayuda adicional con las instancias de Windows, consulte Solución de problemas de las instancias de Windows en la Guía del usuario de Amazon EC2 para instancias de Windows.

Causas comunes de problemas de conexión

Le recomendamos que empiece a solucionar los problemas comprobando algunas causas comunes de problemas relacionados con la conexión a la instancia.

Compruebe el nombre de usuario de su instancia

Puede conectarse a la instancia mediante el nombre de usuario de su cuenta de usuario o el nombre de usuario predeterminado de la AMI que utilizó para iniciar la instancia.

  • Obtener el nombre de usuario de su cuenta de usuario.

    Para obtener más información sobre cómo crear una cuenta de usuario, consulte Administración de las cuentas de usuario en su instancia de Amazon Linux.

  • Obtenga el nombre de usuario predeterminado para la AMI que utilizó para lanzar la instancia:

    • Para Amazon Linux 2 o la AMI de Amazon Linux, el nombre de usuario es ec2-user.

    • Para una AMI de CentOS, el nombre de usuario es centos.

    • Para una AMI de Debian, el nombre de usuario es admin.

    • Para una AMI de Fedora, el nombre de usuario es ec2-user o fedora.

    • Para una AMI de RHEL, el nombre de usuario es ec2-user o root.

    • Para una AMI de SUSE, el nombre de usuario es ec2-user o root.

    • Para una AMI de Ubuntu, el nombre de usuario es ubuntu.

    • Si ec2-user y root no funcionan, consulte con el proveedor de la AMI.

Compruebe que las reglas del grupo de seguridad permiten tráfico

Asegúrese de que las reglas del grupo de seguridad permiten el tráfico entrante desde su dirección IPv4 pública en el puerto adecuado. Para ver los pasos que deben verificarse, consulte Error connecting to your instance: Connection timed out

Verifique que la instancia esté lista

Una vez lanzada la instancia, pueden transcurrir unos minutos hasta que esté lista para conectarse. Compruebe su instancia para asegurarse de que se está ejecutando y ha superado sus comprobaciones de estado.

  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, elija Instances (Instancias) y seleccione la instancia.

  3. Compruebe que la instancia tiene el estado running y ha superado las comprobaciones de estado.

Verifique los requisitos previos generales para conectarse a la instancia

Para obtener más información, consulte Requisitos previos generales para conexión a la instancia.

Error connecting to your instance: Connection timed out

Si intenta conectar la instancia y recibe el mensaje de error Network error: Connection timed out o Error connecting to [instance], reason: -> Connection timed out: connect, pruebe lo siguiente:

  • Compruebe las reglas del grupo de seguridad. Necesita un grupo de seguridad que permita el tráfico de entrada de la dirección IPv4 pública en el puerto adecuado.

    1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

    2. En el panel de navegación, elija Instances (Instancias) y seleccione la instancia.

    3. En la pestaña Description (Descripción) de la parte inferior de la página de la consola, junto a Security groups (Grupos de seguridad), seleccione view inbound rules (ver reglas de entrada) para ver la lista de reglas efectivas para la instancia seleccionada.

    4. Para las instancias Linux: al seleccionar view inbound rules (ver reglas de entrada), se abrirá una ventana que muestra los puertos en los que se permite tráfico. Compruebe que hay una regla que permite el tráfico desde el equipo hasta el puerto 22 (SSH).

      Para las instancias Windows: al seleccionar view inbound rules (ver reglas de entrada), se abrirá una ventana que muestra los puertos en los que se permite tráfico. Compruebe que hay una regla que permite el tráfico desde el equipo hasta el puerto 3389 (RDP).

      Cada vez que reinicie su instancia, se le asignará una nueva dirección IP (y nombre de host). Si el grupo de seguridad tiene una regla que permite el tráfico entrante de una única dirección IP, esta dirección puede no ser estática si el equipo se encuentra en una red corporativa o si está conectando mediante un proveedor de Internet (ISP). En su lugar, especifique el rango de direcciones IP que utilizan los equipos cliente. Si el grupo de seguridad no tiene una regla que permita el tráfico de entrada como se describe en el paso anterior, agréguesela. Para obtener más información, consulte Autorización del tráfico de entrada para sus instancias.

      Si desea obtener más información acerca de las reglas del grupo de seguridad, consulte Reglas del grupo de seguridad en la Guía del usuario de Amazon VPC.

  • Compruebe la tabla de ruteo de la subred. Necesita una ruta que envíe todo el tráfico destinado fuera de la VPC al gateway de Internet para la VPC.

    1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

    2. En el panel de navegación, elija Instances (Instancias) y seleccione la instancia.

    3. En la pestaña Description (Descripción), escriba los valores de VPC ID (ID de la VPC) y Subnet ID (ID de subred).

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

    5. En el panel de navegación, elija Internet Gateways (Gateways de Internet). Verifique que hay una gateway de Internet adjunta a la VPC. Si no la hay, elija Create Internet Gateway (Crear gateway de Internet) para crear una gateway de Internet. Seleccione la gateway de Internet y, después, elija Attach to VPC (Conectar a la VPC) y siga las instrucciones para adjuntarla a la VPC.

    6. En el panel de navegación, elija Subnets (Subredes) y, a continuación, seleccione la suya.

    7. En la pestaña Route Table (Tabla de ruteo), verifique que haya una ruta con 0.0.0.0/0 como destino y la gateway de Internet de la VPC como destino. Si está conectando con la instancia utilizando la dirección IPv6, verifique que existe una ruta para todo el tráfico IPv6 (::/0) que apunte a la gateway de Internet. De lo contrario, realice lo siguiente:

      1. Elija el ID de la tabla de ruteo (rtb-xxxxxxxx) para navegar a la tabla de ruteo.

      2. En la pestaña Routes (Rutas), elija Edit routes (Editar rutas). Elija Add route (Añadir ruta) y utilice 0.0.0.0/0 como destino y la gateway de Internet como objetivo. Para IPv6, elija Add route (Añadir ruta) y utilice ::/0 como destino y la gateway de Internet como objetivo.

      3. Elija Save routes (Guardar rutas).

  • Compruebe la lista de control de acceso (ACL) a la red para la subred. Las ACL de red deben permitir el tráfico de entrada y de salida de la dirección IP local en el puerto adecuado. La ACL de red predeterminada permite el tráfico de entrada y de salida.

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

    2. En el panel de navegación, elija Subnets (Subredes) y seleccione la subred.

    3. En la pestaña Description (Descripción), busque Network ACL (ACL de red) y elija su ID (acl-xxxxxxxx).

    4. Seleccione la ACL de red. En Inbound Rules (Reglas de entrada), verifique que las reglas permiten el tráfico desde el equipo. Si no es así, elimine o modifique la regla que bloquea el tráfico del equipo.

    5. En Outbound Rules (Reglas de salida), verifique que las reglas permiten el tráfico hacia el equipo. Si no es así, elimine o modifique la regla que bloquea el tráfico al equipo.

  • Si el equipo se encuentra en una red corporativa, pregunte al administrador de red si el firewall interno permite el tráfico de entrada y salida del equipo en el puerto 22 (para las instancias de Linux) o el puerto 3389 (para instancias de Windows).

    Si tiene un firewall en el equipo, compruebe que permite el tráfico de entrada y salida del equipo en el puerto 22 (para las instancias de Linux) o el puerto 3389 (para instancias de Windows).

  • Compruebe que la instancia tiene una dirección IPv4 pública. Si no, asocie una dirección IP elástica a su instancia. Para obtener más información, consulte Direcciones IP elásticas.

  • Compruebe la carga de la CPU en la instancia; el servidor puede estar sobrecargado. AWS proporciona automáticamente datos como las métricas de Amazon CloudWatch y el estado de la instancia, que puede usar para ver cuánta carga de la CPU está en la instancia y, si es necesario, ajustar cómo se gestionan las cargas. Para obtener más información, consulte Monitoreo de las instancias con CloudWatch.

Para conectarse con la instancia a través de la dirección IPv6, compruebe lo siguiente:

  • La subred debe estar asociada a una tabla de ruteo que tenga una ruta para el tráfico IPv6 (::/0) a una gateway de Internet.

  • Las reglas del grupo de seguridad deben permitir el tráfico de la dirección IPv6 local en el puerto adecuado (22 para Linux y 3389 para Windows).

  • Las reglas ACL de la red deben permitir el tráfico IPv6 de entrada y salida.

  • Si lanzó la instancia desde una AMI más antigua, tal vez no esté configurada para DHCPv6 (las direcciones IPv6 no se reconocen automáticamente en la interfaz de red). Para obtener más información, consulte Configuración de IPv6 en sus instancias en la Guía del usuario de Amazon VPC.

  • El equipo local debe tener una dirección IPv6 y estar configurado para usar IPv6.

Error: unable to load key … Expecting: ANY PRIVATE KEY

Si intenta conectarse a su instancia y obtiene el mensaje de error, unable to load key ... Expecting: ANY PRIVATE KEY, el archivo en el que está almacenada la clave privada está configurado de forma incorrecta. Si el archivo de clave privada termina en .pem, es posible que siga estando configurado de forma incorrecta. Una causa posible para un archivo de clave privada configurado incorrectamente es que falte un certificado.

Si el archivo de clave privada está configurado de forma incorrecta, siga estos pasos para resolver el error

  1. Cree un nuevo par de claves. Para obtener más información, consulte Opción 1: Crear un par de claves mediante Amazon EC2.

  2. Añade el nuevo par de claves a su instancia. Para obtener más información, consulte Conectarse a la instancia de Linux tras la pérdida de la clave privada.

  3. Conecte a la instancia mediante el nuevo par de claves

Error: User key not recognized by server

Si usa SSH para conectarse con la instancia

  • Use ssh -vvv para obtener información detallada de depuración triple:

    ssh -vvv -i path/my-key-pair.pem my-instance-user-name@ec2-203-0-113-25.compute-1.amazonaws.com

    El resultado del ejemplo siguiente muestra lo que puede ver si intenta conectar con la instancia mediante una clave que el servidor no reconoce:

    open/ANT/myusername/.ssh/known_hosts). debug2: bits set: 504/1024 debug1: ssh_rsa_verify: signature correct debug2: kex_derive_keys debug2: set_newkeys: mode 1 debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug2: set_newkeys: mode 0 debug1: SSH2_MSG_NEWKEYS received debug1: Roaming not allowed by server debug1: SSH2_MSG_SERVICE_REQUEST sent debug2: service_accept: ssh-userauth debug1: SSH2_MSG_SERVICE_ACCEPT received debug2: key: boguspem.pem ((nil)) debug1: Authentications that can continue: publickey debug3: start over, passed a different list publickey debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password debug3: authmethod_lookup publickey debug3: remaining preferred: keyboard-interactive,password debug3: authmethod_is_enabled publickey debug1: Next authentication method: publickey debug1: Trying private key: boguspem.pem debug1: read PEM private key done: type RSA debug3: sign_and_send_pubkey: RSA 9c:4c:bc:0c:d0:5c:c7:92:6c:8e:9b:16:e4:43:d8:b2 debug2: we sent a publickey packet, wait for reply debug1: Authentications that can continue: publickey debug2: we did not send a packet, disable method debug1: No more authentication methods to try. Permission denied (publickey).

Si usa PuTTY para conectarse con la instancia

  • Verifique que el archivo de clave privada (.pem) se ha convertido en el formato que reconoce PuTTY (.ppk). Para obtener más información acerca de la conversión de claves privadas, consulte Conexión a la instancia de Linux desde Windows mediante PuTTY.

    nota

    En PuTTYgen, cargue el archivo de clave privada y seleccione Guardar clave privada en lugar de Generar.

  • Verifique que está conectando con el nombre de usuario adecuado para la AMI. Escriba el nombre de usuario en el cuadro Nombre de alojamiento de la ventana Configuración de PuTTY.

    • Para Amazon Linux 2 o la AMI de Amazon Linux, el nombre de usuario es ec2-user.

    • Para una AMI de CentOS, el nombre de usuario es centos.

    • Para una AMI de Debian, el nombre de usuario es admin.

    • Para una AMI de Fedora, el nombre de usuario es ec2-user o fedora.

    • Para una AMI de RHEL, el nombre de usuario es ec2-user o root.

    • Para una AMI de SUSE, el nombre de usuario es ec2-user o root.

    • Para una AMI de Ubuntu, el nombre de usuario es ubuntu.

    • Si ec2-user y root no funcionan, consulte con el proveedor de la AMI.

  • Verifique que tiene una regla en el grupo de seguridad de entrada para permitir el tráfico de entrada en el puerto adecuado. Para obtener más información, consulte Autorización del tráfico de entrada para sus instancias.

Error: Permiso denegado o conexión cerrada por [instancia] puerto 22

Si se conecta a la instancia usando SSH y obtiene los errores Host key not found in [directory], Permission denied (publickey), Authentication failed, permission denied o Connection closed by [instance] port 22, compruebe que está conectando con el nombre de usuario adecuado para la AMI y que ha especificado el archivo de clave privada adecuado (.pem) para la instancia.

Los nombres de usuario correctos son como siguen:

  • Para Amazon Linux 2 o la AMI de Amazon Linux, el nombre de usuario es ec2-user.

  • Para una AMI de CentOS, el nombre de usuario es centos.

  • Para una AMI de Debian, el nombre de usuario es admin.

  • Para una AMI de Fedora, el nombre de usuario es ec2-user o fedora.

  • Para una AMI de RHEL, el nombre de usuario es ec2-user o root.

  • Para una AMI de SUSE, el nombre de usuario es ec2-user o root.

  • Para una AMI de Ubuntu, el nombre de usuario es ubuntu.

  • Si ec2-user y root no funcionan, consulte con el proveedor de la AMI.

Por ejemplo, para utilizar un cliente SSH para conectarse a una instancia de Amazon Linux, utilice el siguiente comando:

ssh -i /path/my-key-pair.pem my-instance-user-name@ec2-203-0-113-25.compute-1.amazonaws.com

Confirme que está usando el archivo de clave privada que corresponde al par de claves que ha seleccionado cuando lanzó la instancia.

  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. Seleccione la instancia. En la pestaña Description (Descripción), verifique el valor de Key pair name (Nombre del par de claves).

  3. Si no ha especificado un par de claves cuando lanzó la instancia, puede terminarla y lanzar otra nueva, asegurando que especifica un par de claves. Si se trata de una instancia que ha estado usando pero que ya no tiene el archivo .pem para el par de claves, puede remplazarlo por uno nuevo. Para obtener más información, consulte Conectarse a la instancia de Linux tras la pérdida de la clave privada.

Si generó un par de claves propias, asegúrese de que el generador de claves está configurado para crear claves RSA. Las claves DSA no se aceptan.

Si obtiene un error Permission denied (publickey) y nada de lo anterior se cumple (por ejemplo, previamente pudo conectarse), es posible que los permisos del directorio principal de la instancia hayan cambiado. Los permisos de /home/my-instance-user-name/.ssh/authorized_keys deben limitarse al propietario únicamente.

Para verificar los permisos de la instancia

  1. Detenga la instancia y sepárela del volumen raíz. Para obtener más información, consulte Detener e iniciar la instancia y Desasociación de un volumen de Amazon EBS de una instancia Linux.

  2. Lance una instancia temporal en la misma zona de disponibilidad que la instancia actual (use la misma AMI o una similar a la que usó para la instancia actual) y adjunte el volumen raíz a la instancia temporal. Para obtener más información, consulte Asociar un volumen de Amazon EBS a una instancia.

  3. Conéctese a la instancia temporal, cree un punto de montaje y monte el volumen que ha adjuntado. Para obtener más información, consulte Hacer que un volumen de Amazon EBS esté disponible para su uso en Linux.

  4. Para la instancia temporal, compruebe los permisos del directorio /home/my-instance-user-name/ del volumen adjunto. Si es necesario, ajuste los permisos como sigue:

    [ec2-user ~]$ chmod 600 mount_point/home/my-instance-user-name/.ssh/authorized_keys
    [ec2-user ~]$ chmod 700 mount_point/home/my-instance-user-name/.ssh
    [ec2-user ~]$ chmod 700 mount_point/home/my-instance-user-name
  5. Desmonte el volumen, sepárelo de la instancia temporal y vuelva a adjuntarlo a la instancia original. Asegúrese de que especifica el nombre de dispositivo correcto para el volumen raíz, por ejemplo, /dev/xvda.

  6. Inicie la instancia. Si ya no necesita la instancia temporal, puede terminarla.

Error: Unprotected Private Key File (Error: archivo de clave privada no protegido)

El archivo de clave privada debe estar protegido frente a operaciones de lectura y escritura de otros usuarios. Si otra persona además de usted puede leer o escribir la clave privada, entonces SSH omite la clave y verá el siguiente mensaje de advertencia.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0777 for '.ssh/my_private_key.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: .ssh/my_private_key.pem Permission denied (publickey).

Si ve un mensaje similar cuando intenta iniciar sesión en la instancia, examine la primera línea del mensaje de error para verificar que está usando la clave pública correcta para la instancia. En el ejemplo anterior se usa la clave privada .ssh/my_private_key.pem con los permisos de archivo 0777, que permite a cualquiera leer o escribir en este archivo. Este nivel de permiso es muy inseguro, de forma que SSH omite esta clave. Para corregir el error, ejecute el comando siguiente sustituyendo la ruta del archivo de clave privada.

[ec2-user ~]$ chmod 0400 .ssh/my_private_key.pem

Error: La clave privada debe empezar por "-----BEGIN RSA PRIVATE KEY-----" y terminar por "-----END RSA PRIVATE KEY-----"

Si utiliza una herramienta externa, como ssh-keygen, para crear un par de claves de RSA, la clave privada se genera con el formato de clave OpenSSH. Cuando se conecte a la instancia, si utiliza la clave privada con el formato OpenSSH para descifrar la contraseña, aparecerá el error Private key must begin with "-----BEGIN RSA PRIVATE KEY-----" and end with "-----END RSA PRIVATE KEY-----".

Para resolver el error, la clave privada debe tener el formato PEM. Utilice el siguiente comando para crear la clave privada con el formato PEM:

ssh-keygen -m PEM

Error: Server refused our key o No supported authentication methods available

Si usa PuTTY para conectar con la instancia y obtiene alguno de los errores siguientes, Error: el servidor rechazó nuestra clave o Error: no hay disponibles métodos de autenticación admitidos, verifique que se está conectando con el nombre de usuario adecuado para la AMI. Escriba el nombre de usuario en el cuadro Nombre de usuario de la ventana Configuración de PuTTY.

Los nombres de usuario correctos son como siguen:

  • Para Amazon Linux 2 o la AMI de Amazon Linux, el nombre de usuario es ec2-user.

  • Para una AMI de CentOS, el nombre de usuario es centos.

  • Para una AMI de Debian, el nombre de usuario es admin.

  • Para una AMI de Fedora, el nombre de usuario es ec2-user o fedora.

  • Para una AMI de RHEL, el nombre de usuario es ec2-user o root.

  • Para una AMI de SUSE, el nombre de usuario es ec2-user o root.

  • Para una AMI de Ubuntu, el nombre de usuario es ubuntu.

  • Si ec2-user y root no funcionan, consulte con el proveedor de la AMI.

También debe comprobar que el archivo de clave privada (.pem) se ha convertido correctamente en el formato que reconoce PuTTY (.ppk). Para obtener más información acerca de la conversión de claves privadas, consulte Conexión a la instancia de Linux desde Windows mediante PuTTY.

Cannot Ping Instance (No se puede ejecutar Ping en la instancia)

El comando ping es un tipo de tráfico ICMP — si no logra enviar un comando ping a la instancia, asegúrese de que las reglas de entrada del grupo de seguridad permiten el tráfico ICMP para el mensaje Echo Request desde todos los orígenes, o desde el equipo o la instancia desde la que ejecuta el comando.

Si no logra enviar un comando ping desde la instancia, asegúrese de que las reglas de salida del grupo de seguridad permiten el tráfico ICMP para el mensaje Echo Request a todos los destinos, o al host al que intenta mandar el comando.

Los comandos Ping también los puede bloquear un firewall o el tiempo de espera debido a problemas de latencia de red o hardware. Debe consultar a su administrador del sistema o red local para obtener ayuda para solución de problemas.

Error: el servidor ha cerrado inesperadamente la conexión de red

Si está conectando la instancia con PuTTY y recibe el error "El servidor ha cerrado inesperadamente la conexión de red", verifique que ha habilitado parámetros keepalives en la página Conexión de la Configuración de PuTTY para evitar la desconexión. Algunos servidores desconectan clientes cuando no reciben ningún dato dentro de un período de tiempo especificado. Defina el valor de segundos entre keepalives en 59 segundos.

Si sigue experimentando problemas después de habilitar los keepalives, pruebe a deshabilitar el algoritmo de Nagle en la página Conexión de la Configuración de PuTTY.