Instalación de EC2 Instance Connect en sus instancias de EC2 - Amazon Elastic Compute Cloud

Instalación de EC2 Instance Connect en sus instancias de EC2

Si quiere utilizar EC2 Instance Connect para conectarse a una instancia, esta debe tenerlo instalado.

EC2 Instance Connect viene preinstalado en las siguientes AMI:

  • 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

Si se inició la instancia con una de las AMI de la lista anterior, puede omitir este procedimiento.

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 usar EC2 Instance Connect.

Requisitos previos para la instalación de EC2 Instance Connect
  • Lance la instancia con una de las siguientes AMI compatibles:

    Amazon Linux 2 anterior a la versión 2.0.20190618

    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

    Red Hat Enterprise Linux (RHEL) 8 y 9

    Ubuntu 16.04 y 18.04

    Si se lanzó la instancia con una versión posterior de Amazon Linux 2, macOS Sonoma, Ventura o Monterey, o Ubuntu, viene preinstalada con EC2 Instance Connect y puede omitir este paso.

  • Verifique los requisitos previos generales para EC2 Instance Connect.

    Para obtener más información, consulte Requisitos previos.

  • Verifique los requisitos previos para conectarse a la instancia mediante un cliente SSH en su equipo local.

    Si su equipo local es Linux o macOS, consulte Conéctese a la instancia de Linux desde Linux o macOS mediante SSH.. Si su equipo local es Windows, consulte Requisitos previos.

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

  • 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 “describe-instances” (Describir instancias) (AWS CLI) o el comando “Get-EC2Instance” (Obtener instancia EC2) (AWS Tools for Windows PowerShell).

  • Instale un cliente SSH en el equipo local.

    Su equipo local muy probablemente tiene un cliente SSH instalado de forma predeterminada. Puede 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. Para obtener más información sobre la instalación de un cliente SSH en Windows 10, consulte OpenSSH en Windows.

  • (Ubuntu) Instale la AWS CLI en su instancia.

    Para instalar EC2 Instance Connect en una instancia de Ubuntu, debe usar la AWS CLI en la instancia. Para obtener más información sobre la instalación de AWS CLI, consulte Instalación de la AWS CLI en la Guía del usuario de AWS Command Line Interface.

Instalación de EC2 Instance Connect

La instalación de EC2 Instance Connect configura el daemon SSH en la instancia.

Use 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 iniciar 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 Conéctese a la instancia de Linux desde Linux o macOS mediante SSH..

  2. 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
  3. (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 iniciar 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 Conéctese a la instancia de Linux desde Linux o macOS mediante SSH..

  2. 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
  3. 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_64) o ARM (AArch64).

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

    • CentOS 8

      Intel/AMD (x86_64)

      [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.rhel8.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.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.rhel8.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.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_64)

      [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.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.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.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.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
  4. (Opcional) Compruebe que EC2 Instance Connect se haya instalado correctamente en su instancia.

    • Para CentOS 8:

      [ec2-user ~]$ sudo less /lib/systemd/system/ssh.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 iniciar 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 Conéctese a la instancia de Linux desde Linux o macOS mediante SSH..

  2. 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 Actualizar el sistema operativo y el software.

    [ec2-user ~]$ brew update
  3. 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
  4. (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 iniciar 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 Conéctese a la instancia de Linux desde Linux o macOS mediante SSH..

  2. 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
  3. 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_64) o ARM (AArch64).

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

    • RHEL 8

      Intel/AMD (x86_64)

      [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.rhel8.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.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.rhel8.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.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_64)

      [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.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.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.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.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
  4. (Opcional) Compruebe que EC2 Instance Connect se haya instalado correctamente en su instancia.

    • Para RHEL 8:

      [ec2-user ~]$ sudo less /lib/systemd/system/ssh.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 iniciar 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 Conéctese a la instancia de Linux desde Linux o macOS mediante SSH..

  2. (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
  3. 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
  4. De forma opcional, compruebe que Instance Connect se ha 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.

Para obtener más información sobre el paquete de EC2 Instance Connect, consulte aws/aws-ec2-instance-connect-config en el sitio web de GitHub.