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 conexão com uma instância do Linux usando o EC2 Instance Connect, a instância deve ter o EC2 Instance Connect instalado. Instalar o EC2 Instance Connect configura o daemon SSH na instância.

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

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 de instalação

Antes de instalar o EC2 Instance Connect, verifique se você atende aos pré-requisitos a seguir.

  • Verifique se a instância usa algum dos seguintes recursos:

    • Amazon Linux 2 anterior à versão 2.0.20190618

    • AMI mínima do AL2023 ou AMI otimizada para o Amazon ECS

    • 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

    dica

    Se você tiver executado a instância com uma versão posterior do Amazon Linux, macOS Sonoma, macOS Ventura, macOS Monterey ou Ubuntu, ela virá com o EC2 Instance Connect pré-instalado. Portanto, você não precisará instalá-lo.

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

    Para ter mais informações, consulte Pré-requisitos para o EC2 Instance Connect.

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

    Para ter mais informações, consulte Conectar-se à instância do Linux usando 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).

Instalar manualmente o EC2 Instance Connect

nota

Se você iniciar a instância usando uma das AMIs a seguir, o EC2 Instance Connect estará pré-instalado e você poderá ignorar este procedimento:

  • AMI padrão do 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

Use um dos procedimentos a seguir para instalar o EC2 Instance Connect, dependendo do sistema operacional da 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 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 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-se à instância do Linux usando um cliente 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 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-se à instância do Linux usando um cliente 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 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 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-se à instância do Linux usando um cliente 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 em instâncias Mac.

    [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 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-se à instância do Linux usando um cliente 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 SSH atribuído à sua instância quando você a executou e use o nome de usuário padrão da AMI que você usou para iniciar sua instância. Para uma AMI 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-se à instância do Linux usando um cliente 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 EC2 Instance Connect foi instalando com êxito 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.