

# Conexión a la instancia de Linux mediante una dirección IP pública e EC2 Instance Connect
<a name="connect-linux-inst-eic"></a>

Amazon EC2 Instance Connect proporciona una forma segura de conectarse a las instancias de Linux con Secure Shell (SSH). Con EC2 Instance Connect, puede utilizar [políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) de AWS Identity and Access Management (IAM) y [entidades principales](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) para controlar el acceso SSH a las instancias y eliminar la necesidad de compartir y administrar las claves SSH. Todas las solicitudes de conexión con EC2 Instance Connect se [registran en AWS CloudTrail](monitor-with-cloudtrail.md#ec2-instance-connect-cloudtrail) de modo que puede auditar las solicitudes de conexión.

Puede utilizar EC2 Instance Connect para conectarse a las instancias con la consola de Amazon EC2 o el cliente SSH que prefiera.

Cuando se conecta a una instancia con EC2 Instance Connect, la API de EC2 Instance Connect inserta una clave pública SSH en los [metadatos de la instancia](ec2-instance-metadata.md), donde permanece por 60 segundos. La política de IAM asociada a su usuario le autoriza a insertar la clave pública en los metadatos de la instancia. El daemon SSH utiliza `AuthorizedKeysCommand` y `AuthorizedKeysCommandUser`, que se configuró cuando se instaló EC2 Instance Connect, para buscar la clave pública en los metadatos de la instancia para su autenticación y la conecta a la instancia.

**sugerencia**  
EC2 Instance Connect es una de las opciones para conectarse a la instancia de Linux. Para otras opciones, consulte [Conexión a la instancia de Linux con SSH](connect-to-linux-instance.md). Para conectarse a una instancia de Windows, consulte [Conexión a una instancia de Windows de mediante RDP](connecting_to_windows_instance.md).

**Precios**  
EC2 Instance Connect está disponible sin ningún costo adicional.

**Disponibilidad por región**  
EC2 Instance Connect está disponible en todas las Regiones de AWS, excepto en Asia-Pacífico (Taipéi). No se admite en zonas locales.

**Topics**
+ [Tutorial](ec2-instance-connect-tutorial.md)
+ [Requisitos previos](ec2-instance-connect-prerequisites.md)
+ [Permisos](ec2-instance-connect-configure-IAM-role.md)
+ [Instalación de EC2 Instance Connect](ec2-instance-connect-set-up.md)
+ [Conexión a una instancia](ec2-instance-connect-methods.md)
+ [Desinstalación de EC2 Instance Connect](ec2-instance-connect-uninstall.md)

Para ver una entrada de blog que explique cómo mejorar la seguridad de los hosts bastión con EC2 Instance Connect, consulte [Protección de los hosts bastión con Amazon EC2 Instance Connect](https://aws.amazon.com/blogs/infrastructure-and-automation/securing-your-bastion-hosts-with-amazon-ec2-instance-connect/).

# Tutorial: Cómo completar la configuración necesaria para conectarse a la instancia mediante EC2 Instance Connect
<a name="ec2-instance-connect-tutorial"></a>

Para conectarse a la instancia mediante EC2 Instance Connect en la consola de Amazon EC2, debe completar la configuración previa que le permitirá conectarse correctamente a la instancia. El objetivo de este tutorial es guiarlo a través de las tareas necesarias para completar la configuración previa.

**Información general del tutorial**

En este tutorial, deberá completar las cuatro tareas detalladas a continuación:
+ [Tarea 1: conceder los permisos necesarios para utilizar EC2 Instance Connect](#eic-tut1-task1)

  En primer lugar, debe crear una política de IAM que contenga los permisos de IAM que le permitirán introducir una clave pública en los metadatos de la instancia. Deberá asociar esta política a su identidad de IAM (usuario, grupo de usuarios o rol) para que su identidad de IAM obtenga estos permisos.
+ [Tarea 2: permitir el tráfico entrante desde el servicio EC2 Instance Connect a la instancia](#eic-tut1-task2)

  A continuación, deberá crear un grupo de seguridad que permita el tráfico desde el servicio EC2 Instance Connect a la instancia. Esto es necesario cuando utiliza EC2 Instance Connect en la consola de Amazon EC2 para conectarse a la instancia.
+ [Tarea 3: Iniciar la instancia](#eic-tut1-task3)

  A continuación, deberá lanzar una instancia de EC2 con una AMI preinstalada en EC2 Instance Connect y agregar el grupo de seguridad que creó en el paso anterior.
+ [Tarea 4: Conectarse a la instancia](#eic-tut1-task4)

  Por último, deberá utilizar EC2 Instance Connect en la consola de Amazon EC2 para conectarse a la instancia. Si puede conectarse, esto significa que la configuración previa que completó en las tareas 1, 2 y 3 se realizó correctamente.

## Tarea 1: conceder los permisos necesarios para utilizar EC2 Instance Connect
<a name="eic-tut1-task1"></a>

Cuando se conecta a una instancia con EC2 Instance Connect, la API de EC2 Instance Connect inserta una clave pública SSH en los [metadatos de la instancia](ec2-instance-metadata.md), donde permanece por 60 segundos. Necesita una política de IAM asociada a su identidad de IAM (usuario, grupo de usuarios o rol) a fin de obtener el permiso necesario para insertar la clave pública en los metadatos de la instancia.

**Objetivo de la tarea**

Creará la política de IAM que concede el permiso para insertar la clave pública en la instancia. La acción específica que debe permitir es `ec2-instance-connect:SendSSHPublicKey`. También debe permitir la acción `ec2:DescribeInstances` para poder ver y seleccionar la instancia en la consola de Amazon EC2.

Después de haber creado la política, deberá asociar esta política a su identidad de IAM (usuario, grupo de usuarios o rol) para que esta obtenga los permisos.

Deberá crear una política con la siguiente configuración:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "ec2-instance-connect:SendSSHPublicKey",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        }
    ]
}
```

------

**importante**  
La política de IAM creada en este tutorial es muy permisiva; le permite conectarse a cualquier instancia mediante cualquier nombre de usuario de AMI. Utilizamos esta política altamente permisiva para que el tutorial sea sencillo y se enfoque en las configuraciones específicas que se enseñan en él. Sin embargo, en un entorno de producción, le recomendamos que la política de IAM esté configurada para proporcionar [permisos con privilegios mínimos](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege). Para ver ejemplos de políticas de IAM, consulte [Concesión de permisos de IAM para EC2 Instance Connect](ec2-instance-connect-configure-IAM-role.md).

**Cómo crear y asociar una política de IAM que le permita usar EC2 Instance Connect para conectarse a las instancias**

1. **Primero: crear la política de IAM**

   1. Abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

   1. En el panel de navegación, seleccione **Políticas**.

   1. Elija **Crear política**.

   1. En la página **Especificar permiso**, haga lo siguiente:

      1. En **Servicio**, elija **EC2 Instance Connect**.

      1. En **Acciones permitidas**, en el campo de búsqueda, comience a escribir **send** para ver las acciones relevantes y, a continuación, seleccione **SendSSHPublicKey**.

      1. En **Recursos**, elija **Todos**. Para un entorno de producción, se recomienda especificar la instancia por su ARN, pero, en este tutorial, se permiten todas las instancias.

      1. Elija **Add more permissions**.

      1. En **Servicio**, elija **EC2**.

      1. En **Acciones permitidas**, en el campo de búsqueda, comience a escribir **describein** para ver las acciones relevantes y, a continuación, seleccione **DescribeInstances**.

      1. Elija **Siguiente**.

   1. En la página **Revisar y crear**, haga lo siguiente:

      1. En **Nombre de política**, escriba un nombre para la política.

      1. Elija **Crear política**.

1. **A continuación, asocie la política a su identidad**

   1. En la consola de IAM, en el panel de navegación, elija **Políticas**.

   1. En la lista de políticas, seleccione el botón de opción situado junto al nombre de la política que creó. Puede utilizar el cuadro de búsqueda para filtrar la lista de políticas.

   1. Elija **Acciones**, **Asociar**.

   1. En **Entidades de IAM**, seleccione la casilla de verificación junto a la identidad (usuario, grupo de usuarios o rol). Puede utilizar el cuadro de búsqueda para filtrar la lista de entidades.

   1. Elija **Asociar política**.

### Ver una animación: crear una política de IAM
<a name="eic-tut1-task1-animation1"></a>

![\[En esta animación, se muestra cómo crear una política de IAM. Para obtener la versión en texto de esta animación, consulte los pasos del procedimiento anterior.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/eic-tut1-task1-create-iam-policy.gif)


### Ver animación: Asociar una política de IAM
<a name="eic-tut1-task1-animation2"></a>

![\[En esta animación, se muestra cómo asociar una política de IAM a una identidad de IAM. Para obtener la versión en texto de esta animación, consulte los pasos del procedimiento anterior.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/eic-tut1-task1-attach-iam-policy.gif)


## Tarea 2: permitir el tráfico entrante desde el servicio EC2 Instance Connect a la instancia
<a name="eic-tut1-task2"></a>

Cuando utiliza EC2 Instance Connect en la consola de Amazon EC2 para conectarse a una instancia, el tráfico que debe permitir que llegue a la instancia es el tráfico desde el servicio EC2 Instance Connect. Esto es diferente a conectarse desde el equipo local a una instancia; en ese caso, debe permitir el tráfico desde el equipo local a la instancia. Para permitir el tráfico desde el servicio EC2 Instance Connect, debe crear un grupo de seguridad que permita el tráfico SSH entrante desde el rango de direcciones IP para el servicio EC2 Instance Connect.

AWS utiliza listas de prefijos para administrar los rangos de direcciones IP. Los nombres de las listas de prefijos de EC2 Instance Connect son de la siguiente manera, donde *region* se reemplaza por el código Región:
+ Nombre de la lista de prefijos de IPv4: `com.amazonaws.region.ec2-instance-connect`
+ Nombre de la lista de prefijos de IPv6: `com.amazonaws.region.ipv6.ec2-instance-connect`

**Objetivo de la tarea**

Deberá crear un grupo de seguridad que permita el tráfico SSH entrante en el puerto 22 de la lista de prefijos IPv4 de la región en la que está ubicada la instancia.

**Crear un grupo de seguridad que permita el tráfico entrante desde el servicio EC2 Instance Connect a la instancia**

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

1. En el panel de navegación, elija **Grupos de seguridad**.

1. Elija **Create Security Group (Creación de grupo de seguridad)**.

1. En **Basic details (Detalles básicos)**, haga lo siguiente:

   1. En **Nombre del grupo de seguridad**, ingrese un nombre significativo para el grupo de seguridad.

   1. En **Descripción**, escriba una descripción significativa para el grupo de seguridad.

1. En **Reglas de entrada**, haga lo siguiente:

   1. Seleccione **Agregar regla**.

   1. En **Tipo**, seleccione **SSH**.

   1. En **Fuente**, deje **Personalizado**.

   1. En el campo situado junto a **Origen**, seleccione la lista de prefijos para EC2 Instance Connect.

      Por ejemplo, si la instancia está ubicada en la región Este de EE. UU. (Norte de Virginia) (`us-east-1`) y los usuarios van a conectarse a su dirección IPv4 pública, elija la siguiente lista de prefijos: **com.amazonaws.us-east-1.ec2-instance-connect**.

1. Elija **Creación de grupo de seguridad**.

### Vista de una animación: crear el grupo de seguridad
<a name="eic-tut1-task2-animation"></a>

![\[En esta animación, se muestra cómo configurar un grupo de seguridad. Para obtener la versión en texto de esta animación, consulte los pasos del procedimiento anterior.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/tut1-task2-eic-security-group.gif)


## Tarea 3: Iniciar la instancia
<a name="eic-tut1-task3"></a>

Cuando se inicia una instancia, debe especificar una AMI que contenga la información necesaria para lanzar la instancia. Puede elegir iniciar una instancia con o sin EC2 Instance Connect preinstalado. En esta tarea, especificamos una AMI que viene preinstalada con EC2 Instance Connect.

Si inicia la instancia sin EC2 Instance Connect preinstalado y desea usar EC2 Instance Connect para conectarse a la instancia, tendrá que completar pasos de configuración adicionales. Esos pasos están fuera del alcance de este tutorial.

**Objetivo de la tarea**

Iniciará una instancia con la AMI de Amazon Linux 2023, que viene preinstalada con EC2 Instance Connect. Además, especificará el grupo de seguridad que creó anteriormente para poder usar EC2 Instance Connect en la consola de Amazon EC2 para conectarse a la instancia. Como utilizará EC2 Instance Connect para conectarse a la instancia y, por lo tanto, se introducirá una clave pública en los metadatos de esta, no necesitará especificar una clave SSH cuando inicie dicha instancia.

**Cómo iniciar una instancia que pueda usar EC2 Instance Connect en la consola de Amazon EC2 para conectarse**

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

1. En la barra de navegación en la parte superior de la pantalla, se muestra la región actual de AWS (por ejemplo, **Irlanda**). Seleccione una región en la que se va a iniciar la instancia. Esta elección es importante porque creó un grupo de seguridad que permite el tráfico en una región específica, por lo que debe seleccionar la misma región en la que desea iniciar la instancia.

1. En el panel de la consola de Amazon EC2, elija **Iniciar instancia**. 

1. (Opcional) En **Name and tags** (Nombre y etiquetas), escriba un nombre descriptivo para la instancia en **Name** (Nombre).

1. En **Imágenes de aplicaciones y SO (Imagen de máquina de Amazon)**, elija **Inicio rápido**. **Amazon Linux** está seleccionado de forma predeterminada. En **Imagen de máquina de Amazon (AMI)**, **AMI de Amazon Linux 2023** está seleccionado de forma predeterminada. Mantenga la selección predeterminada para esta tarea.

1. En **Tipo de instancia**, para **Tipo de instancia**, mantenga la selección predeterminada o seleccione un tipo de instancia diferente.

1. En **Par de claves (inicio de sesión)**, para **Nombre del par de claves**, elija **Continuar sin un par de claves (no se recomienda)**. Cuando utiliza EC2 Instance Connect para conectarse a una instancia, EC2 Instance Connect envía un par de claves a los metadatos de la instancia y es este par de claves el que se utiliza para la conexión.

1. En **Network settings** (Configuración de red), haga lo siguiente:

   1. En **Autoasignar IP pública**, seleccione **Habilitar**.
**nota**  
Para usar EC2 Instance Connect en la consola de Amazon EC2 para conectarse a una instancia, la instancia debe tener una dirección IPv4 o IPv6 pública.

   1. En **Firewall (grupos de seguridad)**, elija **Seleccionar un grupo de seguridad existente**.

   1. En **Grupos de seguridad habituales**, elija el grupo de seguridad que creó anteriormente.

1. En el panel **Resumen**, elija **Iniciar instancia**.

### Ver animación: Iniciar la instancia
<a name="eic-tut1-task3-animation"></a>

![\[En esta animación, se muestra cómo iniciar una instancia. Para obtener la versión en texto de esta animación, consulte los pasos del procedimiento anterior.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/tut1-task3-launch-an-instance.gif)


## Tarea 4: Conectarse a la instancia
<a name="eic-tut1-task4"></a>

Cuando se conecta a una instancia con EC2 Instance Connect, la API de EC2 Instance Connect inserta una clave pública SSH en los [metadatos de la instancia](ec2-instance-metadata.md), donde permanece por 60 segundos. El daemon SSH utiliza `AuthorizedKeysCommand` y `AuthorizedKeysCommandUser` para buscar la clave pública en los metadatos de la instancia para su autenticación y la conecta a la instancia.

**Objetivo de la tarea**

En esta tarea, se conectará a la instancia mediante EC2 Instance Connect en la consola de Amazon EC2. Si completó las tareas 1, 2 y 3 la conexión debería realizarse correctamente. 

**Pasos para conectarse a la instancia**

Los pasos siguientes le permiten conectarse a la instancia. Para ver una animación de los pasos, consulte [Ver animación: Conectarse a la instancia](#eic-tut1-task4-animation).

**Conectarse a una instancia mediante EC2 Instance Connect en la consola de Amazon EC2**

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

1. En la barra de navegación en la parte superior de la pantalla, se muestra la región actual de AWS (por ejemplo, **Irlanda**). Seleccione la región en la que se encuentra la instancia.

1. En el panel de navegación, seleccione **Instances (Instancias)**. 

1. Seleccione la instancia y elija **Connect**.

1. Elija la pestaña **EC2 Instance Connect**.

1. Elija **Conéctese a través de una IP pública**. 

1. Elija **Conectar**.

   Se abre una ventana terminal en el navegador y está conectado a la instancia.

### Ver animación: Conectarse a la instancia
<a name="eic-tut1-task4-animation"></a>

![\[En esta animación, se muestra cómo conectar una instancia con EC2 Instance Connect. Para obtener la versión en texto de esta animación, consulte los pasos del procedimiento anterior.\]](http://docs.aws.amazon.com/es_es/AWSEC2/latest/UserGuide/images/eic-tut1-task4-connect.gif)


# Requisitos previos para EC2 Instance Connect
<a name="ec2-instance-connect-prerequisites"></a>

**Topics**
+ [Instalación de EC2 Instance Connect](#eic-prereqs-install-eic-on-instance)
+ [Garantizar la conectividad de red](#eic-prereqs-network-access)
+ [Permitir el tráfico SSH entrante](#ec2-instance-connect-setup-security-group)
+ [Concesión de permisos](#eic-prereqs-grant-permissions)
+ [Instalar un cliente SSH en el equipo local](#eic-prereqs-install-ssh-client)
+ [Cumplir con los requisitos del nombre de usuario](#eic-prereqs-username)

## Instalación de EC2 Instance Connect
<a name="eic-prereqs-install-eic-on-instance"></a>

Si quiere utilizar EC2 Instance Connect para conectarse a una instancia, esta debe tenerlo instalado. Puede iniciar la instancia con una AMI que viene preinstalada con EC2 Instance Connect o puede instalar este último en instancias que se inicien con AMI compatibles. Para obtener más información, consulte [Instalación de EC2 Instance Connect en sus instancias de EC2](ec2-instance-connect-set-up.md).

## Garantizar la conectividad de red
<a name="eic-prereqs-network-access"></a>

Las instancias se pueden configurar para permitir a los usuarios conectarse a ellas a través de Internet o mediante la dirección IP privada de la instancia. Debe configurar el siguiente acceso a la red  en función del modo en que los usuarios se conecten a la instancia mediante EC2 Instance Connect:
+ Si los usuarios se conectarán a su instancia a través de Internet, entonces la instancia debe tener una dirección IPv4 o IPv6 pública y estar en una subred pública con una ruta hacia Internet. Si no ha modificado la subred pública predeterminada, esta incluirá una ruta hacia internet solo para IPv4, y no para IPv6. Para obtener más información, consulte [Concesión del acceso a internet de la VPC con puertas de enlace de Internet](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html#vpc-igw-internet-access) en la *Guía del usuario de Amazon VPC*.
+ Si los usuarios se conectarán a la instancia a través de la dirección IPv4 privada de la instancia, deberá establecer una conectividad de red privada con su VPC, por ejemplo, mediante AWS Direct Connect, AWS Site-to-Site VPN o el emparejamiento de VPC, para que los usuarios puedan llegar a la dirección IP privada de la instancia.

Si la instancia no tiene una dirección IPv4 o IPv6 pública y prefiere no configurar el acceso a la red como se describe anteriormente, puede considerar un punto de conexión de EC2 Instance Connect como alternativa a EC2 Instance Connect. Con el punto de conexión de EC2 Instance Connect, se puede conectar a una instancia mediante SSH o RDP incluso si la instancia no tiene una dirección IPv4 o IPv6 pública. Para obtener más información, consulte [Conexión a la instancia de Linux con la consola de Amazon EC2](connect-using-eice.md#connect-using-the-ec2-console).

## Permitir el tráfico SSH entrante
<a name="ec2-instance-connect-setup-security-group"></a>

**Uso de la consola de Amazon EC2 para conectarse a una instancia**  
Cuando los usuarios se conectan a una instancia mediante la consola de Amazon EC2, el tráfico que debe permitirse para llegar a la instancia es el tráfico del servicio de EC2 Instance Connect. El servicio se identifica mediante rangos de direcciones IP específicos, que AWS administra mediante listas de prefijos. Debe crear un grupo de seguridad que permita el tráfico SSH entrante desde el servicio de EC2 Instance Connect. Para configurar esto, en la regla de entrada, en el campo junto a **Origen**, seleccione la lista de prefijos de EC2 Instance Connect.

AWS proporciona diferentes listas de prefijos administrados para direcciones IPv4 e IPv6 para cada región. Los nombres de las listas de prefijos de EC2 Instance Connect son de la siguiente manera, donde *region* se reemplaza por el código Región:
+ Nombre de la lista de prefijos de IPv4: `com.amazonaws.region.ec2-instance-connect`
+ Nombre de la lista de prefijos de IPv6: `com.amazonaws.region.ipv6.ec2-instance-connect`

Para obtener las instrucciones sobre cómo crear el grupo de seguridad, consulte [Tarea 2: permitir el tráfico entrante desde el servicio EC2 Instance Connect a la instancia](ec2-instance-connect-tutorial.md#eic-tut1-task2). Para obtener más información, consulte [Listas de prefijos administradas de AWS disponibles](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html#available-aws-managed-prefix-lists) en la *Guía del usuario de Amazon VPC*.

**Uso de la CLI o SSH para conectarse a una instancia**  
Asegúrese de que el grupo de seguridad asociado con la instancia [permite el tráfico SSH entrante](security-group-rules-reference.md#sg-rules-local-access) en el puerto 22 desde la dirección IP o desde la red. El grupo de seguridad predeterminado de la VPC no permite el tráfico SSH entrante de forma predeterminada. El grupo de seguridad creado por el asistente de inicialización de instancias habilita el tráfico SSH entrante de forma predeterminada. Para obtener más información, consulte [Reglas para conectarse a las instancias desde un equipo](security-group-rules-reference.md#sg-rules-local-access).

## Concesión de permisos
<a name="eic-prereqs-grant-permissions"></a>

Debe conceder los permisos necesarios a todos los usuarios de IAM que usen EC2 Instance Connect para conectarse a una instancia. Para obtener más información, consulte [Concesión de permisos de IAM para EC2 Instance Connect](ec2-instance-connect-configure-IAM-role.md).

## Instalar un cliente SSH en el equipo local
<a name="eic-prereqs-install-ssh-client"></a>

Si los usuarios se van a conectar mediante SSH, deben asegurarse de que su equipo local tenga un cliente SSH.

Es muy probable que los equipos locales de los usuarios tengan un cliente SSH instalado de forma predeterminada. Pueden comprobar si tiene un cliente SSH escribiendo **ssh** en la línea de comandos. Si su equipo local no reconoce el comando, puede instalar un cliente SSH. Para obtener información sobre la instalación de un cliente SSH en Linux o macOS X, consulte [http://www.openssh.com](http://www.openssh.com/). Para obtener más información sobre la instalación de un cliente SSH en Windows 10, consulte [OpenSSH en Windows](https://learn.microsoft.com/en-us/windows-server/administration/OpenSSH/openssh-overview).

No hay necesidad de instalar un cliente SSH en un equipo local si los usuarios solo utilizan la consola de Amazon EC2 para conectarse a una instancia.

## Cumplir con los requisitos del nombre de usuario
<a name="eic-prereqs-username"></a>

Cuando se utiliza EC2 Instance Connect para conectarse a una instancia, el nombre de usuario debe cumplir los siguientes requisitos:
+ Primer carácter: debe ser una letra (`A-Z`, `a-z`), un dígito (`0-9`) o un guion bajo (`_`)
+ Caracteres posteriores: pueden ser letras (`A-Z`, `a-z`), dígitos (`0-9`) o los siguientes caracteres: `@ . _ -`
+ Longitud mínima: 1 carácter
+ Longitud máxima: 31 caracteres

# Concesión de permisos de IAM para EC2 Instance Connect
<a name="ec2-instance-connect-configure-IAM-role"></a>

Si quiere conectarse a una instancia con EC2 Instance Connect, debe crear una política de IAM que conceda permisos a los usuarios para las siguientes acciones y condiciones:
+ Acción `ec2-instance-connect:SendSSHPublicKey`: concede permiso a un usuario para insertar la clave pública en una instancia.
+ Condición `ec2:osuser`: especifica el nombre del usuario de SO que puede enviar la clave pública a una instancia. Utilice el nombre de usuario predeterminado para la AMI que utilizó para lanzar la instancia. El nombre de usuario predeterminado para AL2023 y Amazon Linux 2 es `ec2-user` y para Ubuntu es `ubuntu`.
+ Acción `ec2:DescribeInstances`: es necesaria cuando se utiliza la consola de EC2 debido a que el encapsulador la llama. Es posible que los usuarios ya tengan permiso para llamar a esta acción desde otra política.
+ Acción `ec2:DescribeVpcs`: necesaria para conectarse a una dirección IPv6.

Considere restringir el acceso a instancias de EC2 específicas. De lo contrario, todas las entidades principales de IAM con permiso para la acción `ec2-instance-connect:SendSSHPublicKey` pueden conectarse a todas las instancias de EC2. Puede restringir el acceso mediante la especificación de ARN de recursos o al usar etiquetas de recurso como [claves de condición](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2instanceconnect.html#amazonec2instanceconnect-policy-keys).

Para obtener más información, consulte [Acciones, recursos y claves de condiciones para Amazon EC2 Instance Connect](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2instanceconnect.html).

Para obtener información acerca de las políticas de IAM, consulte [Creación de políticas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la *Guía del usuario de IAM*.

## Concesión de permisos para que los usuarios se conecten a instancias específicas
<a name="eic-permissions-allow-users-to-connect-to-specific-instances"></a>

La siguiente política de IAM concede permiso para conectarse a instancias específicas, identificadas por sus ARN de recursos. 

En el siguiente ejemplo de política de IAM, se especifican las siguientes acciones y condiciones:
+ La acción `ec2-instance-connect:SendSSHPublicKey` concede a los usuarios permiso para conectarse a dos instancias, especificadas por los ARN del recurso. Para conceder a los usuarios permiso para conectarse a *todas* las instancias de EC2, sustituya los ARN del recurso por el carácter comodín `*`.
+ La condición `ec2:osuser` concede permiso para conectarse a las instancias solo si se especifica *ami-username* al conectarse.
+ La acción `ec2:DescribeInstances` se especifica para conceder permisos a los usuarios que usarán la consola para conectarse a sus instancias. Si los usuarios solo utilizarán un cliente SSH para conectarse a sus instancias, puede omitir `ec2:DescribeInstances`. Tenga en cuenta que las acciones de la API `ec2:Describe*` no admiten permisos de recursos. Por lo tanto, el carácter comodín `*` es necesario en el elemento `Resource`.
+ La acción `ec2:DescribeVpcs` se especifica para otorgar permisos a los usuarios que utilizarán la consola para conectarse a sus instancias con una dirección IPv6. Si los usuarios van a utilizar únicamente una dirección IPv4 pública, puede omitir `ec2:DescribeVpcs`. Tenga en cuenta que las acciones de la API `ec2:Describe*` no admiten permisos de recursos. Por lo tanto, el carácter comodín `*` es necesario en el elemento `Resource`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "ec2-instance-connect:SendSSHPublicKey",
            "Resource": [
                "arn:aws:ec2:us-east-1:111122223333:instance/i-1234567890abcdef0",
                "arn:aws:ec2:us-east-1:111122223333:instance/i-0598c7d356eba48d7"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:osuser": "ami-username"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeVpcs"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Concesión de permisos para que los usuarios se conecten a instancias con etiquetas específicas
<a name="eic-permissions-allow-users-to-connect-to-instances-with-specific-tags"></a>

El control de acceso basado en atributos (ABAC) es una estrategia de autorización que define permisos basados en etiquetas que pueden asociarse a usuarios y recursos de AWS. Puede utilizar etiquetas de recursos para controlar el acceso a una instancia. Para obtener más información sobre el uso de etiquetas para controlar el acceso a los recursos de AWS, consulte [Control de acceso a los recursos de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources) en la *Guía del usuario de IAM*.

En el siguiente ejemplo de política de IAM, la acción `ec2-instance-connect:SendSSHPublicKey` concede a los usuarios permiso para conectarse a cualquier instancia (lo que se indica mediante el carácter comodín `*` en el ARN del recurso) con la condición de que la instancia tenga una etiqueta de recurso con key=`tag-key` y value=`tag-value`.

La acción `ec2:DescribeInstances` se especifica para conceder permisos a los usuarios que usarán la consola para conectarse a sus instancias. Si los usuarios solo utilizarán un cliente SSH para conectarse a sus instancias, puede omitir `ec2:DescribeInstances`. Tenga en cuenta que las acciones de la API `ec2:Describe*` no admiten permisos de recursos. Por lo tanto, el carácter comodín `*` es necesario en el elemento `Resource`.

La acción `ec2:DescribeVpcs` se especifica para otorgar permisos a los usuarios que utilizarán la consola para conectarse a sus instancias con una dirección IPv6. Si los usuarios van a utilizar únicamente una dirección IPv4 pública, puede omitir `ec2:DescribeVpcs`. Tenga en cuenta que las acciones de la API `ec2:Describe*` no admiten permisos de recursos. Por lo tanto, el carácter comodín `*` es necesario en el elemento `Resource`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Effect": "Allow",
            "Action": "ec2-instance-connect:SendSSHPublicKey", 
            "Resource": "arn:aws:ec2:us-east-1:111122223333:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/tag-key": "tag-value"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:DescribeVpcs"
            ],
            "Resource": "*"
        }
    ]
}
```

------

# Instalación de EC2 Instance Connect en sus instancias de EC2
<a name="ec2-instance-connect-set-up"></a>

Para conectarse a una instancia de Linux mediante EC2 Instance Connect, la instancia debe tener EC2 Instance Connect instalado. La instalación de EC2 Instance Connect configura el daemon SSH en la instancia.

Para obtener más información sobre el paquete de EC2 Instance Connect, consulte [aws/aws-ec2-instance-connect-config ](https://github.com/aws/aws-ec2-instance-connect-config) en el sitio web de GitHub.

**nota**  
Si ha configurado los ajustes `AuthorizedKeysCommand` y `AuthorizedKeysCommandUser` para la autenticación SSH, la instalación de EC2 Instance Connect no los actualizará. En consecuencia, no puede utilizar EC2 Instance Connect.

## Requisitos previos de instalación
<a name="ec2-instance-connect-install-prerequisites"></a>

Antes de instalar EC2 Instance Connect, asegúrese de cumplir los siguientes requisitos previos.
+ **Compruebe que la instancia utilice uno de los siguientes:**
  + Amazon Linux 2 anterior a la versión 2.0.20190618 \$1
  + AMI mínima de AL2023 o AMI optimizada para Amazon ECS
  + CentOS Stream 8 y 9
  + macOS Sonoma anterior a 14.2.1, Ventura anterior a 13.6.3 y Monterey anterior a 12.7.2 \$1
  + Red Hat Enterprise Linux (RHEL) 8 y 9
  + Ubuntu 16.04 y 18.04 \$1
**sugerencia**  
\$1 Para Amazon Linux 2, macOS y Ubuntu: si lanzó la instancia con una versión posterior a las indicadas anteriormente, EC2 Instance Connect viene preinstalado y no es necesaria ninguna instalación manual.
+ **Verifique los requisitos previos generales para EC2 Instance Connect.**

  Para obtener más información, consulte [Requisitos previos para EC2 Instance Connect](ec2-instance-connect-prerequisites.md).
+ **Verifique los requisitos previos para conectarse a la instancia mediante un cliente SSH en su equipo local.**

  Para obtener más información, consulte [Conexión a la instancia de Linux con SSH](connect-to-linux-instance.md).
+ **Obtenga el ID de la instancia.**

  Puede obtener el ID de su instancia con la consola de Amazon EC2 (en la columna **“Instance ID” [ID de la instancia]**). Si lo prefiere, puede usar el comando [Describir instancias](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) (AWS CLI) o el comando [Obtener instancia de EC2](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html) (AWS Tools for Windows PowerShell).

## Instalación manual de EC2 Instance Connect
<a name="ec2-instance-connect-install"></a>

**nota**  
Si inició la instancia mediante una de las siguientes AMI, EC2 Instance Connect está preinstalado y puede omitir este procedimiento:  
AMI estándar AL2023
Amazon Linux 2 2.0.20190618 o versiones posteriores
macOS Sonoma 14.2.1 o posterior
macOS Ventura 13.6.3 o posterior
macOS Monterey 12.7.2 o posterior
Ubuntu 20.04 o versiones posteriores

Utilice uno de los siguientes procedimientos para instalar EC2 Instance Connect, en función del sistema operativo de la instancia.

------
#### [ Amazon Linux 2 ]

**Para instalar EC2 Instance Connect en una instancia iniciada con Amazon Linux 2**

1. Conéctese a la instancia de mediante SSH.

   Reemplace los valores de ejemplo en el siguiente comando por los suyos. Use el par de claves SSH que se asignó a su instancia cuando la lanzó y el nombre de usuario predeterminado de la AMI que utilizó para lanzar la instancia. Para Amazon Linux 2, el nombre de usuario predeterminado es `ec2-user`.

   ```
   $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
   ```

   Para obtener más información sobre cómo conectarse a la instancia, consulte [Conexión a la instancia de Linux mediante un cliente SSH](connect-linux-inst-ssh.md).

1. Instale el paquete EC2 Instance Connect en su instancia.

   ```
   [ec2-user ~]$ sudo yum install ec2-instance-connect
   ```

   Debe ver tres scripts nuevos en la carpeta `/opt/aws/bin/`:

   ```
   eic_curl_authorized_keys
   eic_parse_authorized_keys
   eic_run_authorized_keys
   ```

1. (Opcional) Compruebe que EC2 Instance Connect se haya instalado correctamente en su instancia.

   ```
   [ec2-user ~]$ sudo less /etc/ssh/sshd_config
   ```

   EC2 Instance Connect se instaló correctamente si las líneas `AuthorizedKeysCommand` y `AuthorizedKeysCommandUser` contienen los siguientes valores:

   ```
   AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
   AuthorizedKeysCommandUser ec2-instance-connect
   ```
   + `AuthorizedKeysCommand` define el script `eic_run_authorized_keys` para que busque las claves en los metadatos de la instancia
   + `AuthorizedKeysCommandUser` define al usuario del sistema como `ec2-instance-connect`
**nota**  
Si ya había configurado `AuthorizedKeysCommand` y `AuthorizedKeysCommandUser`, la instalación de EC2 Instance Connect no cambiará los valores y no podrá usar EC2 Instance Connect.

------
#### [ CentOS ]

**Instalar EC2 Instance Connect en una instancia iniciada con CentOS**

1. Conéctese a la instancia de mediante SSH.

   Reemplace los valores de ejemplo en el siguiente comando por los suyos. Use el par de claves SSH que se asignó a su instancia cuando la lanzó y el nombre de usuario predeterminado de la AMI que utilizó para lanzar la instancia. Para CentOS, el nombre de usuario predeterminado es `centos` o `ec2-user`.

   ```
   $ ssh -i my_ec2_private_key.pem centos@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
   ```

   Para obtener más información sobre cómo conectarse a la instancia, consulte [Conexión a la instancia de Linux mediante un cliente SSH](connect-linux-inst-ssh.md).

1. Si utiliza un proxy HTTP o HTTPS, debe establecer las variables de entorno `http_proxy` o `https_proxy` en la sesión de shell actual.

   Si no usa un proxy, puede omitir este paso.
   + Para un servidor proxy HTTP, ejecute los siguientes comandos:

     ```
     $ export http_proxy=http://hostname:port
     $ export https_proxy=http://hostname:port
     ```
   + Para un servidor proxy HTTPS, ejecute los siguientes comandos:

     ```
     $ export http_proxy=https://hostname:port
     $ export https_proxy=https://hostname:port
     ```

1. Instale el paquete de EC2 Instance Connect en su instancia con los siguientes comandos.

   Los archivos de configuración de EC2 Instance Connect para CentOS se proporcionan en un paquete de Red Hat Package Manager (RPM), con diferentes paquetes de RPM para CentOS 8 y CentOS 9 y para tipos de instancia que se ejecutan en Intel/AMD (x86\$164) o ARM (AArch64).

   Use el bloque de comandos para el sistema operativo y la arquitectura de la CPU.
   + CentOS 8

     Intel/AMD (x86\$164)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-5.rhel8.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```

     RAM (AArch64)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-2.0.0-5.rhel8.aarch64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```
   + CentOS 9

     Intel/AMD (x86\$164)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-5.rhel9.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```

     RAM (AArch64)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-2.0.0-5.rhel9.aarch64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```

   Debería ver los siguientes scripts nuevos en la carpeta `/opt/aws/bin/`:

   ```
   eic_run_authorized_keys
   ```

1. (Opcional) Compruebe que EC2 Instance Connect se haya instalado correctamente en su instancia.
   + Para CentOS 8:

     ```
     [ec2-user ~]$ sudo less /lib/systemd/system/sshd.service.d/ec2-instance-connect.conf
     ```
   + Para CentOS 9:

     ```
     [ec2-user ~]$ sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf
     ```

   EC2 Instance Connect se instaló correctamente si las líneas `AuthorizedKeysCommand` y `AuthorizedKeysCommandUser` contienen los siguientes valores:

   ```
   AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
   AuthorizedKeysCommandUser ec2-instance-connect
   ```
   + `AuthorizedKeysCommand` define el script `eic_run_authorized_keys` para que busque las claves en los metadatos de la instancia
   + `AuthorizedKeysCommandUser` define al usuario del sistema como `ec2-instance-connect`
**nota**  
Si ya había configurado `AuthorizedKeysCommand` y `AuthorizedKeysCommandUser`, la instalación de EC2 Instance Connect no cambiará los valores y no podrá usar EC2 Instance Connect.

------
#### [ macOS ]

**Instalar EC2 Instance Connect en una instancia iniciada con macOS**

1. Conéctese a la instancia de mediante SSH.

   Reemplace los valores de ejemplo en el siguiente comando por los suyos. Use el par de claves SSH que se asignó a su instancia cuando la lanzó y el nombre de usuario predeterminado de la AMI que utilizó para lanzar la instancia. Para las instancias de macOS, el nombre de usuario predeterminado es `ec2-user`.

   ```
   $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
   ```

   Para obtener más información sobre cómo conectarse a la instancia, consulte [Conexión a la instancia de Linux mediante un cliente SSH](connect-linux-inst-ssh.md).

1. Actualice Homebrew mediante el siguiente comando. La actualización incluirá el software que Homebrew conoce. El paquete EC2 Instance Connect se proporciona a través de Homebrew en las instancias de macOS. Para obtener más información, consulte [Cómo actualizar el sistema operativo y el software en las instancias de Mac de Amazon EC2](mac-instance-updates.md).

   ```
   [ec2-user ~]$ brew update
   ```

1. Instale el paquete EC2 Instance Connect en su instancia. Esto instalará el software y configurará sshd para usarlo.

   ```
   [ec2-user ~]$ brew install ec2-instance-connect
   ```

   Debería ver los siguientes scripts nuevos en la carpeta `/opt/aws/bin/`:

   ```
   eic_run_authorized_keys
   ```

1. (Opcional) Compruebe que EC2 Instance Connect se haya instalado correctamente en su instancia.

   ```
   [ec2-user ~]$ sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf
   ```

   EC2 Instance Connect se instaló correctamente si las líneas `AuthorizedKeysCommand` y `AuthorizedKeysCommandUser` contienen los siguientes valores:

   ```
   AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
   AuthorizedKeysCommandUser ec2-instance-connect
   ```
   + `AuthorizedKeysCommand` define el script `eic_run_authorized_keys` para que busque las claves en los metadatos de la instancia
   + `AuthorizedKeysCommandUser` define al usuario del sistema como `ec2-instance-connect`
**nota**  
Si ya había configurado `AuthorizedKeysCommand` y `AuthorizedKeysCommandUser`, la instalación de EC2 Instance Connect no cambiará los valores y no podrá usar EC2 Instance Connect.

------
#### [ RHEL ]

**Instalar EC2 Instance Connect en una instancia iniciada con Red Hat Enterprise Linux (RHEL)**

1. Conéctese a la instancia de mediante SSH.

   Reemplace los valores de ejemplo en el siguiente comando por los suyos. Use el par de claves SSH que se asignó a su instancia cuando la lanzó y el nombre de usuario predeterminado de la AMI que utilizó para lanzar la instancia. Para RHEL, el nombre de usuario predeterminado es `ec2-user` o `root`.

   ```
   $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
   ```

   Para obtener más información sobre cómo conectarse a la instancia, consulte [Conexión a la instancia de Linux mediante un cliente SSH](connect-linux-inst-ssh.md).

1. Si utiliza un proxy HTTP o HTTPS, debe establecer las variables de entorno `http_proxy` o `https_proxy` en la sesión de shell actual.

   Si no usa un proxy, puede omitir este paso.
   + Para un servidor proxy HTTP, ejecute los siguientes comandos:

     ```
     $ export http_proxy=http://hostname:port
     $ export https_proxy=http://hostname:port
     ```
   + Para un servidor proxy HTTPS, ejecute los siguientes comandos:

     ```
     $ export http_proxy=https://hostname:port
     $ export https_proxy=https://hostname:port
     ```

1. Instale el paquete de EC2 Instance Connect en su instancia con los siguientes comandos. 

   Los archivos de configuración de EC2 Instance Connect para RHEL se proporcionan en un paquete Red Hat Package Manager (RPM), con diferentes paquetes RPM para RHEL 8 y RHEL 9 y, por ejemplo, tipos que se ejecutan en Intel/AMD (x86\$164) o ARM (AArch64).

   Use el bloque de comandos para el sistema operativo y la arquitectura de la CPU.
   + RHEL 8

     Intel/AMD (x86\$164)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-5.rhel8.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```

     RAM (AArch64)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-2.0.0-5.rhel8.aarch64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```
   + RHEL 9

     Intel/AMD (x86\$164)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-2.0.0-5.rhel9.x86_64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_amd64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```

     RAM (AArch64)

     ```
     [ec2-user ~]$ mkdir /tmp/ec2-instance-connect
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-2.0.0-5.rhel9.aarch64.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect.rpm
     [ec2-user ~]$ curl https://amazon-ec2-instance-connect-us-west-2.s3.us-west-2.amazonaws.com/latest/linux_arm64/ec2-instance-connect-selinux-2.0.0-5.noarch.rpm -o /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     [ec2-user ~]$ sudo yum install -y /tmp/ec2-instance-connect/ec2-instance-connect.rpm /tmp/ec2-instance-connect/ec2-instance-connect-selinux.rpm
     ```

   Debería ver los siguientes scripts nuevos en la carpeta `/opt/aws/bin/`:

   ```
   eic_run_authorized_keys
   ```

1. (Opcional) Compruebe que EC2 Instance Connect se haya instalado correctamente en su instancia.
   + Para RHEL 8:

     ```
     [ec2-user ~]$ sudo less /lib/systemd/system/sshd.service.d/ec2-instance-connect.conf
     ```
   + Para RHEL 9:

     ```
     [ec2-user ~]$ sudo less /etc/ssh/sshd_config.d/60-ec2-instance-connect.conf
     ```

   EC2 Instance Connect se instaló correctamente si las líneas `AuthorizedKeysCommand` y `AuthorizedKeysCommandUser` contienen los siguientes valores:

   ```
   AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
   AuthorizedKeysCommandUser ec2-instance-connect
   ```
   + `AuthorizedKeysCommand` define el script `eic_run_authorized_keys` para que busque las claves en los metadatos de la instancia
   + `AuthorizedKeysCommandUser` define al usuario del sistema como `ec2-instance-connect`
**nota**  
Si ya había configurado `AuthorizedKeysCommand` y `AuthorizedKeysCommandUser`, la instalación de EC2 Instance Connect no cambiará los valores y no podrá usar EC2 Instance Connect.

------
#### [ Ubuntu ]

**Para instalar EC2 Instance Connect en una instancia iniciada con Ubuntu 16.04 o una versión posterior**

1. Conéctese a la instancia de mediante SSH.

   Reemplace los valores de ejemplo en el siguiente comando por los suyos. Use el par de claves SSH que se asignó a su instancia cuando la lanzó y el nombre de usuario predeterminado de la AMI que utilizó para lanzar la instancia. Para una AMI de Ubuntu, el nombre de usuario es `ubuntu`.

   ```
   $ ssh -i my_ec2_private_key.pem ubuntu@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
   ```

   Para obtener más información sobre cómo conectarse a la instancia, consulte [Conexión a la instancia de Linux mediante un cliente SSH](connect-linux-inst-ssh.md).

1. (Opcional) Asegúrese de que su instancia tenga la AMI de Ubuntu más reciente.

   Ejecute los siguientes comandos para actualizar todos los paquetes de su instancia.

   ```
   ubuntu:~$ sudo apt-get update
   ```

   ```
   ubuntu:~$ sudo apt-get upgrade
   ```

1. Instale el paquete EC2 Instance Connect en su instancia.

   ```
   ubuntu:~$ sudo apt-get install ec2-instance-connect
   ```

   Debe ver tres scripts nuevos en la carpeta `/usr/share/ec2-instance-connect/`:

   ```
   eic_curl_authorized_keys
   eic_parse_authorized_keys
   eic_run_authorized_keys
   ```

1. (Opcional) Compruebe que EC2 Instance Connect se haya instalado correctamente en su instancia.

   ```
   ubuntu:~$ sudo less /lib/systemd/system/ssh.service.d/ec2-instance-connect.conf
   ```

   EC2 Instance Connect se instaló correctamente si las líneas `AuthorizedKeysCommand` y `AuthorizedKeysCommandUser` contienen los siguientes valores:

   ```
   AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys %%u %%f
   AuthorizedKeysCommandUser ec2-instance-connect
   ```
   + `AuthorizedKeysCommand` define el script `eic_run_authorized_keys` para que busque las claves en los metadatos de la instancia
   + `AuthorizedKeysCommandUser` define al usuario del sistema como `ec2-instance-connect`
**nota**  
Si ya había configurado `AuthorizedKeysCommand` y `AuthorizedKeysCommandUser`, la instalación de EC2 Instance Connect no cambiará los valores y no podrá usar EC2 Instance Connect.

------

# Conectarse a la instancia de Linux con EC2 Instance Connect
<a name="ec2-instance-connect-methods"></a>

Las siguientes instrucciones explican cómo conectarse a la instancia de Linux mediante EC2 Instance Connect mediante la consola de Amazon EC2, la AWS CLI o un cliente SSH. 

Al establecer conexión con una instancia mediante EC2 Instance Connect a través de la consola o AWS CLI, la API de EC2 Instance Connect inserta automáticamente una clave pública SSH en los [metadatos de la instancia](ec2-instance-metadata.md), donde permanece por 60 segundos. La política de IAM asociada al usuario autoriza esta acción. Si prefiere utilizar una clave de SSH propia, puede emplear un cliente SSH y enviar explícitamente la clave SSH a la instancia mediante EC2 Instance Connect.

**Consideraciones**  
Tras conectarse a una instancia mediante EC2 Instance Connect, la conexión persiste hasta que finalice la sesión SSH. La duración de la conexión no viene determinada por la duración de sus credenciales de IAM. Si sus credenciales de IAM caducan, la conexión seguirá persistiendo. Al utilizar la experiencia de consola de EC2 Instance Connect, si sus credenciales de IAM caducan, finalice la conexión cerrando la página del navegador. Al utilizar su propio cliente SSH y EC2 Instance Connect para enviar su clave, puede establecer un valor de tiempo de espera de SSH para finalizar la sesión de SSH automáticamente.

**Requisitos**  
Antes de comenzar, asegúrese de revisar todos los [requisitos previos](ec2-instance-connect-prerequisites.md).

**Topics**
+ [Conectarse desde la consola de Amazon EC2](#ec2-instance-connect-connecting-console)
+ [Conexión mediante la AWS CLI](#connect-linux-inst-eic-cli-ssh)
+ [Conexión con su propia clave y cliente SSH](#ec2-instance-connect-connecting-aws-cli)
+ [Solución de problemas](#ic-troubleshoot)

## Conectarse desde la consola de Amazon EC2
<a name="ec2-instance-connect-connecting-console"></a>

Puede conectarse a una instancia mediante EC2 Instance Connect mediante la consola de Amazon EC2.

**Requisitos**  
Para conectarse mediante la consola de Amazon EC2, la instancia debe tener una dirección IPv4 o IPv6 pública. Si la instancia solo tiene una dirección IPv4 privada, puede establecer conexión mediante la [AWS CLI ec2-instance-connect](#connect-linux-inst-eic-cli-ssh).

**Para conectarse a la instancia mediante la consola de Amazon EC2**

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

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

1. Seleccione la instancia y elija **Connect (Conectar)**.

1. Elija la pestaña **EC2 Instance Connect**.

1. Elija **Conéctese a través de una IP pública**.

1. Si hay una opción, seleccione la dirección IP a la que desea conectarse. De lo contrario, la dirección IP se selecciona de forma automática.

1. En **Nombre de usuario**, escriba el nombre de usuario.

1. Elija **Conectarse** para establecer conexión. Se abrirá una ventana de terminal en el navegador.

## Conexión mediante la AWS CLI
<a name="connect-linux-inst-eic-cli-ssh"></a>

Si conoce la AWS CLI [ec2-instance-connect](https://docs.aws.amazon.com/cli/latest/reference/ec2-instance-connect/index.html) para establecer conexión con la instancia con un cliente SSH. EC2 Instance Connect intenta establecer una conexión mediante una dirección IP disponible en un orden predefinido, según el tipo de conexión especificado. Si una dirección IP no está disponible, prueba automáticamente con la siguiente según el orden.Tipos de conexión

`auto` (predeterminado)  
EC2 Instance Connect intenta establecer conexión mediante las direcciones IP de la instancia en el siguiente orden y con el tipo de conexión correspondiente:  

1. IPv4 pública: `direct`

1. IPv4 privada: `eice`

1. IPv6: `direct`

`direct`  
EC2 Instance Connect intenta establecer conexión mediante las direcciones IP de la instancia en el siguiente orden:  

1. IPv4 pública

1. IPv6

1. IPv4 privada (no se conecta a través de un punto de conexión de EC2 Instance Connect)

`eice`  
EC2 Instance Connect se intenta conectar mediante la dirección IPv4 privada de la instancia y un [punto de conexión de EC2 Instance Connect](connect-with-ec2-instance-connect-endpoint.md).

**nota**  
En el futuro, es posible que cambiemos el comportamiento del tipo de conexión `auto`. Para asegurarse de que se utiliza el tipo de conexión deseado, recomendamos que explícitamente defina `--connection-type` en `direct` o `eice`.

**Requisitos**  
Debe utilizar la versión 2 de la AWS CLI. Para obtener más información, consulte [Instalar o actualizar la última versión de la AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

**Para conectarse a una instancia mediante el ID de la instancia**  
Si solo conoce el ID de la instancia y quiere que EC2 Instance Connect determine el tipo de conexión que se utilizará al establecer conexión con la instancia, utilice el comando de la CLI [ec2-instance-connect ssh](https://docs.aws.amazon.com/cli/latest/reference/ec2-instance-connect/ssh.html) con el ID de la instancia.

```
aws ec2-instance-connect ssh --instance-id i-1234567890example
```

**Para conectarse a una instancia mediante el ID de instancia y un punto de conexión de EC2 Instance Connect**  
Si quiere conectarse a la instancia a través de un [punto de conexión de EC2 Instance Connect](connect-with-ec2-instance-connect-endpoint.md), utilice el comando anterior y especifique también el parámetro `--connection-type` con el valor `eice`.

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

**Para conectarse a una instancia mediante el ID de la instancia y su propio archivo de clave privada**  
Si quiere conectarse a la instancia a través de un punto de conexión de EC2 Instance Connect mediante su propia clave privada, especifique el ID de la instancia y la ruta al archivo de clave privada. No incluya *file://* en la ruta; se producirá un error en el siguiente ejemplo: *file:///path/to/key*.

```
aws ec2-instance-connect ssh --instance-id i-1234567890example --private-key-file /path/to/key.pem
```

**sugerencia**  
Si aparece un error al usar estos comandos, asegúrese de que usa la versión 2 de la AWS CLI porque el comando `ssh` solo está disponible en esta versión principal. También recomendamos actualizar periódicamente a la última versión secundaria de la versión 2 de la AWS CLI para acceder a las características más recientes. Para obtener más información, consulte [Información AWS CLI sobre la versión 2](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html#welcome-versions-v2) en la *AWS Command Line InterfaceGuía del usuario*.

## Conexión con su propia clave y cliente SSH
<a name="ec2-instance-connect-connecting-aws-cli"></a>

Puede usar su propia clave SSH y conectarse a su instancia desde el cliente SSH que elija al utilizar la API EC2 Instance Connect. Esto le permite aprovechar la capacidad de EC2 Instance Connect de insertar una clave pública en la instancia. Este método de conexión funciona para instancias con direcciones IP públicas y privadas.

**Requisitos**
+ Requisitos para pares de claves
  + Tipos compatibles: RSA (OpenSSH y SSH2) y ED25519.
  + Las longitudes admitidas son 2048 y 4096.
  + Para obtener más información, consulte [Crear un par de claves con una herramienta de terceros e importar la clave pública a Amazon EC2](create-key-pairs.md#how-to-generate-your-own-key-and-import-it-to-aws).
+ Cuando se conecta a una instancia que solo tiene direcciones IP privadas, el equipo local desde el que está iniciando la sesión de SSH debe tener conectividad al punto de conexión del servicio de EC2 Instance Connect (para enviar la clave pública de SSH a la instancia), así como conectividad de red a la dirección IP privada de la instancia a fin de establecer la sesión de SSH. Se puede acceder al punto de conexión de servicio de EC2 Instance Connect a través de Internet o de una interfaz virtual pública de Direct Connect. Para conectarse a la dirección IP privada de la instancia, puede aprovechar servicios tales como [Direct Connect](https://aws.amazon.com/directconnect/), [AWS Site-to-Site VPN](https://aws.amazon.com/vpn/) o el [emparejamiento de VPC](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html).

**Para conectarse a la instancia mediante su propia clave y cualquier cliente SSH**

1. 

**De forma opcional, puede generar claves públicas y privadas SSH.**

   Puede generar nuevas claves públicas y privadas SSH, `my_key` y `my_key.pub`, mediante el siguiente comando:

   ```
   ssh-keygen -t rsa -f my_key
   ```

1. 

**Inserte la clave pública SSH en la instancia**

   Use el comando [https://docs.aws.amazon.com/cli/latest/reference/ec2-instance-connect/send-ssh-public-key.html](https://docs.aws.amazon.com/cli/latest/reference/ec2-instance-connect/send-ssh-public-key.html) para insertar la clave pública SSH en la instancia. Si utilizó AL2023 o Amazon Linux 2 para lanzar la instancia, el nombre de usuario predeterminado de la AMI es `ec2-user`. Si utilizó Ubuntu para lanzar la instancia, el nombre de usuario predeterminado de la AMI es `ubuntu`.

   En el siguiente ejemplo, se inserta la clave pública en la instancia especificada, en la zona de disponibilidad especificada, para autenticar `ec2-user`.

   ```
   aws ec2-instance-connect send-ssh-public-key \
       --region us-west-2 \
       --availability-zone us-west-2b \
       --instance-id i-001234a4bf70dec41EXAMPLE \
       --instance-os-user ec2-user \
       --ssh-public-key file://my_key.pub
   ```

1. 

**Conéctese a la instancia mediante su clave privada**

   Use el comando **ssh** para conectarse a la instancia mediante la clave privada antes de que se elimine la clave pública de los metadatos de la instancia (tiene 60 segundos para ello). Especifique la clave privada que se corresponde con la clave pública, el nombre de usuario predeterminado para la AMI que se usó para lanzar la instancia y el nombre del DNS público de la instancia (si se conecta a través de una red privada, especifique el nombre del DNS o la dirección IP privados). Agregue la opción `IdentitiesOnly=yes` para asegurarse de que solo los archivos en la configuración ssh y la clave especificada se utilizan para la conexión. 

   ```
   ssh -o "IdentitiesOnly=yes" -i my_key ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com
   ```

   En el siguiente ejemplo se utiliza `timeout 3600` para configurar la sesión SSH de modo que finalice después de 1 hora. Los procesos iniciados durante la sesión pueden seguir ejecutándose en la instancia una vez finalizada la sesión.

   ```
   timeout 3600 ssh -o “IdentitiesOnly=yes” -i my_key ec2-user@ec2-198-51-100-1.compute-1.amazonaws.com
   ```

## Solución de problemas
<a name="ic-troubleshoot"></a>

Si aparece un error mientras intenta conectarse a la instancia, consulte lo siguiente:
+ [Solución de problemas de conexión a la instancia de Linux de Amazon EC2](TroubleshootingInstancesConnecting.md)
+ [Cómo puedo solucionar problemas de conexión a mi instancia de EC2 mediante EC2 Instance Connect?](https://repost.aws/knowledge-center/ec2-instance-connect-troubleshooting)

# Desinstalación de EC2 Instance Connect
<a name="ec2-instance-connect-uninstall"></a>

Para deshabilitar EC2 Instance Connect, conéctese a su instancia de Linux y desinstale el paquete `ec2-instance-connect` instalado en el sistema operativo. Si la configuración de `sshd` coincide con lo que se definió cuando instaló EC2 Instance Connect, la desinstalación de `ec2-instance-connect` también elimina la configuración de `sshd`. Si modificó la configuración de `sshd` después de instalar EC2 Instance Connect, debe actualizarla manualmente.

------
#### [ Amazon Linux ]

Puede desinstalar EC2 Instance Connect en AL2023 y Amazon Linux 2 2.0.20190618 o una versión posterior, donde EC2 Instance Connect está preconfigurado.

**Para desinstalar EC2 Instance Connect en una instancia iniciada con Amazon Linux**

1. Conéctese a la instancia mediante SSH. Especifique el par de claves SSH que utilizó para su instancia cuando la lanzó y el nombre de usuario predeterminado para la AMI de AL2023 o Amazon Linux 2, que es `ec2-user`.

   Por ejemplo, el siguiente comando **ssh** conecta a la instancia con el nombre de DNS público `ec2-a-b-c-d.us-west-2.compute.amazonaws.com`, mediante el par de claves `my_ec2_private_key.pem`.

   ```
   $ ssh -i my_ec2_private_key.pem ec2-user@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
   ```

1. Desinstale el paquete `ec2-instance-connect` mediante el comando **yum**.

   ```
   [ec2-user ~]$ sudo yum remove ec2-instance-connect
   ```

------
#### [ Ubuntu ]

**Para desinstalar EC2 Instance Connect en una instancia iniciada con una AMI de Ubuntu**

1. Conéctese a la instancia mediante SSH. Especifique el par de claves SSH que utilizó para su instancia cuando lo lanzó y el nombre de usuario predeterminado para la AMI de Ubuntu, que es `ubuntu`.

   Por ejemplo, el siguiente comando **ssh** conecta a la instancia con el nombre de DNS público `ec2-a-b-c-d.us-west-2.compute.amazonaws.com`, mediante el par de claves `my_ec2_private_key.pem`.

   ```
   $ ssh -i my_ec2_private_key.pem ubuntu@ec2-a-b-c-d.us-west-2.compute.amazonaws.com
   ```

1. Desinstale el paquete `ec2-instance-connect` mediante el comando **apt-get**.

   ```
   ubuntu:~$ sudo apt-get remove ec2-instance-connect
   ```

------