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.
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
-
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..
-
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
-
(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
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
-
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..
-
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
-
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
-
(Opcional) Verifique se o EC2 Instance Connect foi instalando com êxito na sua instância.
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
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
-
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..
-
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
-
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
-
(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
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)
-
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..
-
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
-
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
-
(Opcional) Verifique se o EC2 Instance Connect foi instalando com êxito na sua instância.
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
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
-
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..
-
(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
-
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
-
(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
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.