Instalar o EC2 Instance Connect nas suas instâncias do EC2 - Amazon Elastic Compute Cloud

Instalar o EC2 Instance Connect nas suas instâncias do EC2

Para se conectar a uma instância usando o EC2 Instance Connect, a instância deve ter o EC2 Instance Connect instalado.

O EC2 Instance Connect vem pré-instalado nas seguintes AMIs:

  • AL2023

  • Amazon Linux 2 2.0.20190618 ou posterior

  • macOS Sonoma 14.2.1 ou posterior

  • macOS Ventura 13.6.3 ou posterior

  • macOS Monterey 12.7.2 ou posterior

  • Ubuntu 20.04 ou posterior

Se a instância foi iniciada usando uma das AMIs da lista anterior, essa tarefa poderá ser pulada.

nota

Se você definiu as configurações de AuthorizedKeysCommand e AuthorizedKeysCommandUser para a autenticação SSH, a instalação do EC2 Instance Connect não as atualizará. Consequentemente, não é possível usar o EC2 Instance Connect.

Pré-requisitos para a instalação EC2 Instance Connect
  • Inicie a instância com uma das seguintes AMIs compatíveis:

    Amazon Linux 2 anterior à versão 2.0.20190618

    CentOS Stream 8 e 9

    macOS Sonoma anterior à versão 14.2.1, Ventura anterior à versão 13.6.3 e Monterey anterior à versão 12.7.2

    Red Hat Enterprise Linux (RHEL) 8 e 9

    Ubuntu 16.04 e 18.04

    Se a instância tiver sido executada com uma versão posterior do Amazon Linux 2, macOS Sonoma, Ventura, Monterey ou do Ubuntu, ela virá com o EC2 Instance Connect pré-instalado e você poderá ignorar esse procedimento.

  • Verifique os pré-requisitos gerais para o EC2 Instance Connect.

    Para ter mais informações, consulte Pré-requisitos.

  • Verifique os pré-requisitos para se conectar à sua instância usando um cliente SSH em sua máquina local.

    Se sua máquina local for Linux ou macOS, consulte Conectar à sua instância do Linux a partir do Linux ou MacOS usando SSH.. Se sua máquina local for Windows, consulte Pré-requisitos.

    Para ter mais informações, consulte Pré-requisitos de conexão via SSH.

  • Obtenha o ID da instância.

    É possível obter o ID da instância usando o console do Amazon EC2 (na coluna ID da instância). Se preferir, é possível usar o comando describe-instances (AWS CLI) ou Get-EC2Instance (AWS Tools for Windows PowerShell).

  • Instale um cliente SSH no computador local.

    É muito provável que seu computador local tenha um cliente SSH instalado por padrão. É possível verificar se existe um cliente SSH digitando ssh na linha de comando. Se o seu computador local não reconhecer o comando, será possível instalar um cliente SSH. Para obter informações sobre como instalar um cliente SSH no Linux ou macOS X, consulte http://www.openssh.com. Para obter informações sobre como instalar um cliente SSH no Windows 10, consulte OpenSSH no Windows.

  • (Ubuntu) Instale a AWS CLI em sua instância.

    Para instalar o EC2 Instance Connect em uma instância do Ubuntu, use a AWS CLI na instância. Para obter informações sobre como instalar a AWS CLI, consulte Instalar a AWS CLI no Guia do usuário da AWS Command Line Interface.

Instalação do EC2 Instance Connect

Instalar o EC2 Instance Connect configura o daemon SSH na instância.

Use um dos procedimentos a seguir para instalar o EC2 Instance Connect, dependendo do sistema operacional da sua instância.

Amazon Linux 2
Para instalar o EC2 Instance Connect em uma instância aberta com Amazon Linux 2
  1. Conecte-se à sua instância usando SSH.

    Substitua o exemplo de valores no seguinte comando pelos seus valores: Use o par de chaves de SSH atribuído à sua instância ao abri-la e o nome do usuário padrão da AMI usada para abrir a instância. Para Amazon Linux 2, o nome do usuário padrão é ec2-user.

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

    Para obter mais informações sobre como se conectar à sua instância, consulte Conectar à sua instância do Linux a partir do Linux ou MacOS usando SSH..

  2. Instale o pacote EC2 Instance Connect na sua instância.

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

    Deverão estar visíveis três novos scripts na pasta /opt/aws/bin/:

    eic_curl_authorized_keys eic_parse_authorized_keys eic_run_authorized_keys
  3. (Opcional) Verifique se o EC2 Instance Connect foi instalando com êxito na sua instância.

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

    O EC2 Instance Connect foi instalado com êxito se as linhas AuthorizedKeysCommand e AuthorizedKeysCommandUser contiverem os seguintes valores:

    AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f AuthorizedKeysCommandUser ec2-instance-connect
    • O AuthorizedKeysCommand define o script eic_run_authorized_keys para buscar as chaves nos metadados da instância

    • O AuthorizedKeysCommandUser define o usuário do sistema como ec2-instance-connect

    nota

    Se você tiver previamente configurado AuthorizedKeysCommand e AuthorizedKeysCommandUser, a instalação do EC2 Instance Connect não mudará os valores e você não poderá usar o EC2 Instance Connect.

CentOS
Para instalar o EC2 Instance Connect em uma instância executada com o CentOS
  1. Conecte-se à sua instância usando SSH.

    Substitua o exemplo de valores no seguinte comando pelos seus valores: Use o par de chaves de SSH atribuído à sua instância ao abri-la e o nome do usuário padrão da AMI usada para abrir a instância. Para o CentOS, o nome de usuário padrão é centos ou ec2-user.

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

    Para obter mais informações sobre como se conectar à sua instância, consulte Conectar à sua instância do Linux a partir do Linux ou MacOS usando SSH..

  2. Se você usar um proxy HTTP ou HTTPS, defina o http_proxy ou as variáveis de ambiente https_proxy na sessão do shell atual.

    Se você não estiver usando um proxy, ignore esta etapa.

    • Para um servidor de proxy HTTP, execute os seguintes comandos:

      $ export http_proxy=http://hostname:port $ export https_proxy=http://hostname:port
    • Para um servidor de proxy HTTPS, execute os seguintes comandos:

      $ export http_proxy=https://hostname:port $ export https_proxy=https://hostname:port
  3. Instale o pacote do EC2 Instance Connect na sua instância executando os comandos a seguir.

    Os arquivos de configuração do EC2 Instance Connect para CentOS são fornecidos em um pacote do Red Hat Package Manager (RPM), com pacotes do RPM diferentes para CentOS 8 e CentOS 9 e para tipos de instância executados em Intel/AMD (x86_64) ou ARM (AArch64).

    Use o bloco de comando para a arquitetura do seu sistema operacional e de 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

      ARM (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

      ARM (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

    Deverá estar visível o seguinte novo script na pasta /opt/aws/bin/:

    eic_run_authorized_keys
  4. (Opcional) Verifique se o EC2 Instance Connect foi instalando com êxito na sua instância.

    • Para o CentOS 8:

      [ec2-user ~]$ sudo less /lib/systemd/system/ssh.service.d/ec2-instance-connect.conf
    • Para o CentOS 9:

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

    O EC2 Instance Connect foi instalado com êxito se as linhas AuthorizedKeysCommand e AuthorizedKeysCommandUser contiverem os seguintes valores:

    AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f AuthorizedKeysCommandUser ec2-instance-connect
    • O AuthorizedKeysCommand define o script eic_run_authorized_keys para buscar as chaves nos metadados da instância

    • O AuthorizedKeysCommandUser define o usuário do sistema como ec2-instance-connect

    nota

    Se você tiver previamente configurado AuthorizedKeysCommand e AuthorizedKeysCommandUser, a instalação do EC2 Instance Connect não mudará os valores e você não poderá usar o EC2 Instance Connect.

macOS
Para instalar o EC2 Instance Connect em uma instância executada com o macOS
  1. Conecte-se à sua instância usando SSH.

    Substitua o exemplo de valores no seguinte comando pelos seus valores: Use o par de chaves de SSH atribuído à sua instância ao abri-la e o nome do usuário padrão da AMI usada para abrir a instância. Para instâncias do macOS, o nome de usuário padrão é ec2-user.

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

    Para obter mais informações sobre como se conectar à sua instância, consulte Conectar à sua instância do Linux a partir do Linux ou MacOS usando SSH..

  2. Atualize o Homebrew usando o seguinte comando. A atualização listará o software que o Homebrew conhece. O pacote do EC2 Instance Connect é fornecido via Homebrew em instâncias do macOS. Para obter mais informações, consulte Atualizar o sistema operacional e o software.

    [ec2-user ~]$ brew update
  3. Instale o pacote EC2 Instance Connect na sua instância. Isso instalará o software e configurará o SSHD para usá-lo.

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

    Deverá estar visível o seguinte novo script na pasta /opt/aws/bin/:

    eic_run_authorized_keys
  4. (Opcional) Verifique se o EC2 Instance Connect foi instalando com êxito na sua instância.

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

    O EC2 Instance Connect foi instalado com êxito se as linhas AuthorizedKeysCommand e AuthorizedKeysCommandUser contiverem os seguintes valores:

    AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f AuthorizedKeysCommandUser ec2-instance-connect
    • O AuthorizedKeysCommand define o script eic_run_authorized_keys para buscar as chaves nos metadados da instância

    • O AuthorizedKeysCommandUser define o usuário do sistema como ec2-instance-connect

    nota

    Se você tiver previamente configurado AuthorizedKeysCommand e AuthorizedKeysCommandUser, a instalação do EC2 Instance Connect não mudará os valores e você não poderá usar o EC2 Instance Connect.

RHEL
Para instalar o EC2 Instance Connect em uma instância executada com o Red Hat Enterprise Linux (RHEL)
  1. Conecte-se à sua instância usando SSH.

    Substitua o exemplo de valores no seguinte comando pelos seus valores: Use o par de chaves de SSH atribuído à sua instância ao abri-la e o nome do usuário padrão da AMI usada para abrir a instância. Para o RHEL, o nome de usuário padrão é ec2-user ou root.

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

    Para obter mais informações sobre como se conectar à sua instância, consulte Conectar à sua instância do Linux a partir do Linux ou MacOS usando SSH..

  2. Se você usar um proxy HTTP ou HTTPS, defina o http_proxy ou as variáveis de ambiente https_proxy na sessão do shell atual.

    Se você não estiver usando um proxy, ignore esta etapa.

    • Para um servidor de proxy HTTP, execute os seguintes comandos:

      $ export http_proxy=http://hostname:port $ export https_proxy=http://hostname:port
    • Para um servidor de proxy HTTPS, execute os seguintes comandos:

      $ export http_proxy=https://hostname:port $ export https_proxy=https://hostname:port
  3. Instale o pacote do EC2 Instance Connect na sua instância executando os comandos a seguir.

    Os arquivos de configuração do EC2 Instance Connect para RHEL são fornecidos em um pacote do Red Hat Package Manager (RPM), com pacotes do RPM diferentes para RHEL 8 e RHEL 9 e para tipos de instância executados em Intel/AMD (x86_64) ou ARM (AArch64).

    Use o bloco de comando para a arquitetura do seu sistema operacional e de 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

      ARM (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

      ARM (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

    Deverá estar visível o seguinte novo script na pasta /opt/aws/bin/:

    eic_run_authorized_keys
  4. (Opcional) Verifique se o EC2 Instance Connect foi instalando com êxito na sua instância.

    • Para o RHEL 8:

      [ec2-user ~]$ sudo less /lib/systemd/system/ssh.service.d/ec2-instance-connect.conf
    • Para o RHEL 9:

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

    O EC2 Instance Connect foi instalado com êxito se as linhas AuthorizedKeysCommand e AuthorizedKeysCommandUser contiverem os seguintes valores:

    AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f AuthorizedKeysCommandUser ec2-instance-connect
    • O AuthorizedKeysCommand define o script eic_run_authorized_keys para buscar as chaves nos metadados da instância

    • O AuthorizedKeysCommandUser define o usuário do sistema como ec2-instance-connect

    nota

    Se você tiver previamente configurado AuthorizedKeysCommand e AuthorizedKeysCommandUser, a instalação do EC2 Instance Connect não mudará os valores e você não poderá usar o EC2 Instance Connect.

Ubuntu
Para instalar o EC2 Instance Connect em uma instância aberta com Ubuntu 16.04 ou posterior
  1. Conecte-se à sua instância usando SSH.

    Substitua o exemplo de valores no seguinte comando pelos seus valores: Use o par de chaves de SSH atribuído à sua instância ao abri-la e use o nome do usuário padrão da AMI usada para abrir a instância. Para uma AMI do Ubuntu, o nome de usuário é ubuntu.

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

    Para obter mais informações sobre como se conectar à sua instância, consulte Conectar à sua instância do Linux a partir do Linux ou MacOS usando SSH..

  2. (Opcional) Garanta que sua instância tenha a AMI do Ubuntu mais recente.

    Execute os comandos a seguir para atualizar todos os pacotes na instância.

    ubuntu:~$ sudo apt-get update
    ubuntu:~$ sudo apt-get upgrade
  3. Instale o pacote EC2 Instance Connect na sua instância.

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

    Deverão estar visíveis três novos scripts na pasta /usr/share/ec2-instance-connect/:

    eic_curl_authorized_keys eic_parse_authorized_keys eic_run_authorized_keys
  4. (Opcional) Verifique se o Instance Connect foi instalando com sucesso na sua instância.

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

    O EC2 Instance Connect foi instalado com êxito se as linhas AuthorizedKeysCommand e AuthorizedKeysCommandUser contiverem os seguintes valores:

    AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys %%u %%f AuthorizedKeysCommandUser ec2-instance-connect
    • O AuthorizedKeysCommand define o script eic_run_authorized_keys para buscar as chaves nos metadados da instância

    • O AuthorizedKeysCommandUser define o usuário do sistema como ec2-instance-connect

    nota

    Se você tiver previamente configurado AuthorizedKeysCommand e AuthorizedKeysCommandUser, a instalação do EC2 Instance Connect não mudará os valores e você não poderá usar o EC2 Instance Connect.

Para obter mais informações sobre o pacote do EC2 Instance Connect, consulte aws/aws-ec2-instance-connect-config no site do GitHub.