Conexión a una instancia de Amazon EC2 mediante el punto de conexión de EC2 Instance Connect - Amazon Elastic Compute Cloud

Conexión a una instancia de Amazon EC2 mediante el punto de conexión de EC2 Instance Connect

Puede usar el punto de conexión de EC2 Instance Connect para conectarse a una instancia de Amazon EC2 que admita SSH o RDP.

Requisitos previos

Puede conectarse a una instancia mediante la consola de Amazon EC2 de la siguiente manera.

Para conectarse a la instancia mediante el cliente basado en navegador
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación, seleccione Instances (Instancia[s]).

  3. Seleccione la instancia y elija Connect.

  4. Elija la pestaña EC2 Instance Connect.

  5. En Tipo de conexión, elija Conectarse a una instancia mediante el punto de conexión de EC2 Instance Connect.

  6. En Punto de conexión de EC2 Instance Connect, elija el ID del punto de conexión de EC2 Instance Connect.

  7. En el caso del nombre de usuario, si la AMI que utilizó para iniciar la instancia utiliza un nombre de usuario que no sea ec2-user, introduzca el nombre de usuario correcto.

  8. En Duración máxima del túnel (segundos), ingrese la duración máxima permitida de la conexión SSH.

    La duración debe cumplir con la condición maxTunnelDuration especificada en la política de IAM. Si no se tiene acceso a la política de IAM, contáctese con su administrador.

  9. Elija Conectar. Esto abre una ventana de terminal para la instancia.

Puede usar SSH para conectarse a la instancia de Linux y usar el comando open-tunnel para establecer un túnel privado. Se puede utilizar open-tunnel en los modos de conexión única o múltiple.

Para obtener más información acerca del uso de la AWS CLI para conectarse a la instancia de mediante SSH, consulte Conexión mediante la AWS CLI.

El siguiente ejemplo usa OpenSSH. Puede usar cualquier otro cliente SSH que admita el modo proxy.

Conexión única de

Para permitir solo una conexión a una instancia mediante SSH y el comando open-tunnel

Utilice ssh y el comando de AWS CLI open-tunnel de la siguiente manera: El comando de proxy -o incluye el comando open-tunnel que crea el túnel privado hacia la instancia.

ssh -i my-key-pair.pem ec2-user@i-0123456789example \ -o ProxyCommand='aws ec2-instance-connect open-tunnel --instance-id i-0123456789example'

Para:

  • -i: especifique el par de claves que se usó para iniciar la instancia.

  • ec2-user@i-0123456789example: especifique el nombre de usuario de la AMI que se usó para iniciar la instancia y el ID de la instancia.

  • --instance-id: especifique el ID de la instancia a la que se va a conectar. Como alternativa, especifique %h, que extrae el ID de instancia del usuario.

Conexión múltiple

Para permitir varias conexiones a una instancia, primero ejecute el comando de AWS CLI open-tunnel para iniciar la escucha de nuevas conexiones TCP y, a continuación, use ssh para crear una nueva conexión TCP y un túnel privado hacia la instancia.

Para permitir varias conexiones a la instancia mediante SSH y el comando open-tunnel
  1. Ejecute el siguiente comando para iniciar la escucha de nuevas conexiones TCP en el puerto especificado del equipo local.

    aws ec2-instance-connect open-tunnel \ --instance-id i-0123456789example \ --local-port 8888

    Resultado previsto

    Listening for connections on port 8888.
  2. En una nueva ventana de terminal, ejecute el comando ssh para crear una nueva conexión TCP y un túnel privado para la instancia.

    ssh -i my-key-pair.pem ec2-user@localhost -p 8888

    Salida esperada: en la primera ventana de terminal, aparecerá lo siguiente:

    [1] Accepted new tcp connection, opening websocket tunnel.

    Es posible que vea el siguiente código de error:

    [1] Closing tcp connection.

Si conoce solo el ID de la instancia, puede utilizar el comando ec2-instance-connect AWS CLI para conectarse a ella mediante un cliente SSH. Para obtener más información sobre el uso del comando ec2-instance-connect, consulte Conexión mediante la AWS CLI.

Requisitos previos

Instale la versión 2 de la AWS CLI y configúrela con sus credenciales. Para obtener más información, consulte Instalación o actualización de la versión más reciente de AWS CLI y Configuración de AWS CLI en la Guía del usuario de AWS Command Line Interface. Como alternativa, abra AWS CloudShell y ejecute los comandos de AWS CLI en el intérprete de comandos previamente autenticado.

Para conectarse a una instancia mediante el ID de instancia y un punto de conexión de EC2 Instance Connect

Si solo conoce el ID de la instancia, utilice el comando de CLI ec2-instance-connect y especifique el comando ssh, el ID de la instancia y el parámetro --connection-type con el valor eice.

aws ec2-instance-connect ssh --instance-id i-1234567890example --connection-type eice
sugerencia

Si aparece un error al usar este comando, asegúrese de que usa la AWS CLI versión 2. El parámetro ssh solo está disponible para la AWS CLI versión 2. Para obtener más información, consulte Información AWS CLI sobre la versión 2 en la AWS Command Line InterfaceGuía del usuario.

Puede usar el protocolo de escritorio remoto (RDP) a través del punto de conexión de EC2 Instance Connect para conectarse a una instancia de Windows sin una dirección IPv4 pública ni un nombre de DNS público.

Para conectarse a la instancia de Windows mediante un cliente RDP
  1. Complete los pasos del 1 al 8 en Conectarse a una instancia de Windows mediante RDP. Tras descargar el archivo de escritorio de RDP en el paso 8, aparecerá el mensaje No se puede conectar, lo cual es de esperar porque la instancia no tiene una dirección IP pública.

  2. Ejecute el siguiente comando para establecer un túnel privado hacia la VPC en la que se encuentra la instancia. --remote-port debe tener el valor 3389 porque RDP usa el puerto 3389 de forma predeterminada.

    aws ec2-instance-connect open-tunnel \ --instance-id i-0123456789example \ --remote-port 3389 \ --local-port any-port
  3. En la carpeta Descargas, busque el archivo de escritorio de RDP que descargó y arrástrelo a la ventana del cliente de RDP.

  4. Haga clic con el botón derecho en el archivo de escritorio de RDP y elija Editar.

  5. En la ventana Editar PC, ingrese localhost:local-port en Nombre del PC (la instancia a la que conectarse), donde local-port utilizará el mismo valor que en el paso 2 y, a continuación, seleccione Guardar.

    Tenga en cuenta que la siguiente captura de pantalla de la ventana Editar PC procede de Escritorio remoto de Microsoft en un Mac. Si utiliza un cliente Windows, la ventana puede ser diferente.

    El cliente RDP con el ejemplo “localhost:5555” en el campo de nombre del PC.
  6. En el cliente RDP, haga clic con el botón derecho en el PC (que acaba de configurar) y elija Conectar para conectarse a su instancia.

  7. En la solicitud, ingrese la contraseña descifrada de la cuenta de administrador.

Solución de problemas

Utilice la siguiente información para diagnosticar y solucionar los problemas comunes que pueda encontrar al utilizar el punto de conexión de EC2 Instance Connect para conectar una instancia.

No puede conectarse a su instancia

Los siguientes son los motivos habituales por los que es posible que no pueda conectarse a su instancia.

  • Grupos de seguridad: compruebe los grupos de seguridad asignados al punto de conexión de EC2 Instance Connect y su instancia. Para obtener más información acerca de las reglas de los grupos de seguridad obligatorios, consulte Grupos de seguridad para el punto de conexión de EC2 Instance Connect.

  • Estado de instancia: compruebe que la instancia esté en el estado running.

  • Par de claves: si el comando que usa para conectarse requiere una clave privada, compruebe que la instancia tenga una clave pública y que dispone de la clave privada correspondiente.

  • Permisos de IAM: compruebe que dispone de los permisos de IAM necesarios. Para obtener más información, consulte Concesión de permisos para el punto de conexión de EC2 Instance Connect.

Para obtener más consejos de solución de problemas para instancias de Linux, consulte Solución de problemas de conexión a la instancia de Linux. Para obtener más consejos de solución de problemas para instancias de Windows, consulte Solucionar problemas con la conexión a la instancia de Windows.

ErrorCode: AccessDeniedException

Si aparece un error AccessDeniedException y la condición maxTunnelDuration se especifica en la política de IAM, asegúrese de especificar el parámetro --max-tunnel-duration al conectarse a una instancia. Para obtener más información sobre este parámetro, consulte open-tunnel en la Referencia de comandos de AWS CLI.