Solução de problemas para conectar-se à sua instância - Amazon Elastic Compute Cloud

Solução de problemas para conectar-se à sua instância

As informações a seguir podem ajudar você a solucionar problemas de conexão com a instância. Para obter mais ajuda com instâncias do Windows, consulte Solução de problemas de instâncias Windows no Guia do usuário do Amazon EC2 para instâncias do Windows.

Causas comuns de problemas de conexão

Recomendamos que você comece a solucionar problemas verificando algumas causas comuns para problemas de conexão com a instância.

Verificar o nome de usuário da instância

É possível se conectar à instância usando o nome de usuário da conta de usuário ou o nome de usuário padrão da AMI usada para executar a instância.

  • Obtenha o nome de usuário da sua conta de usuário.

    Para obter mais informações sobre como criar uma conta de usuário, consulte Gerenciar contas de usuário na instância do Amazon Linux.

  • Obtenha o nome de usuário padrão da AMI usada para executar a instância:

    • Para a AMI do Amazon Linux 2 ou Amazon Linux, o nome do usuário é ec2-user.

    • Para uma AMI do CentOS, o nome do usuário é centos ou ec2-user.

    • Para uma AMI do Debian, o nome do usuário é admin.

    • Para uma AMI do Fedora, o nome do usuário é fedora ou ec2-user.

    • Para uma AMI do RHEL, o nome do usuário é ec2-user ou root.

    • Para uma AMI do SUSE, o nome do usuário é ec2-user ou root.

    • Para uma AMI do Ubuntu, o nome de usuário é ubuntu.

    • Para uma AMI do Oracle, o nome do usuário é ec2-user.

    • Para uma AMI do Bitnami, o nome do usuário é bitnami.

    • Caso contrário, verifique com o provedor da AMI.

Verificar se as regras do grupo de segurança permitem tráfego

Verificar se as regras do grupo de segurança permitem o tráfego de entrada do endereço IPv4 público na porta adequada. Para obter as etapas de verificação, consulte Erro ao se conectar à sua instância: limite de tempo da conexão atingido

Verificar se a instância está pronta

Depois de iniciar uma instância, pode demorar alguns minutos para ela ficar pronta e que você possa se conectar a ela. Verifique a instância para se certificar de que ela está sendo executada e passou em suas verificações de status.

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Instâncias e, em seguida, sua instância.

  3. Verifique o seguinte:

    1. Na coluna Instance state (Estado da instância), verifique se sua instância está no estado running.

    2. Na coluna Status check (Verificação de status), verifique se sua instância passou nas duas verificações de status.

Verifique os pré-requisitos gerais para se conectar à instância

Para obter mais informações, consulte Pré-requisitos gerais para conectar-se à instância.

Erro ao se conectar à sua instância: limite de tempo da conexão atingido

Se você tentar se conectar à sua instância e receber uma mensagem de erro Network error: Connection timed out ou Error connecting to [instance], reason: -> Connection timed out: connect, experimente o seguinte:

Verifique as regras do seu security group.

Você precisa de uma regra do security group que permita tráfego de entrada a partir do seu endereço IPv4 público na porta apropriada.

New console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Instâncias e, em seguida, sua instância.

  3. Na guia Security (Segurança) na parte inferior da página do console, em Inbound rules (Regras de entrada), verifique a lista de regras que estão em vigor para a instância selecionada.

    • Para instâncias do Linux: verifique se há uma regra para permitir tráfego do seu computador para a porta 22 (SSH).

    • Para instâncias do Windows: verifique se há uma regra para permitir tráfego do seu computador para a porta 3389 (RDP).

  4. Cada vez que sua instância for reiniciada, um novo endereço IP (e nome de host) será atribuído. Se o grupo de segurança tiver uma regra que permite tráfego de entrada de um único endereço IP, este endereço não poderá ser estático caso seu computador esteja em uma rede corporativa ou caso você esteja se conectando por um provedor de serviços de Internet (ISP). Em vez disso, especifique o intervalo de endereços IP usado por computadores do cliente. Se seu security group não tiver uma regra que permita tráfego de entrada como descrito na etapa anterior, adicione uma regra para seu security group. Para obter mais informações, consulte Autorizar tráfego de entrada para suas instâncias do Linux.

    Para obter mais informações sobre regras de grupos de segurança, consulte Regras de grupos de segurança no Guia do usuário da Amazon VPC.

Old console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Instâncias e, em seguida, sua instância.

  3. Na guia Description (Descrição) na parte inferior da página do console, ao lado de Security groups (Grupos de segurança), selecione view inbound rules (exibir regras de entrada) para exibir a lista de regras que estão em vigor para a instância selecionada.

  4. Para instâncias do Linux: quando você selecionar view inbound rules (exibir regras de entrada), será exibida uma janela que exibe a(s) porta(s) para a(s) qual(is) o tráfego é permitido. Verifique se há uma regra para permitir tráfego de seu computador para a porta 22 (SSH).

    Para instâncias do Windows: quando você selecionar view inbound rules (visualizar regras de entrada), será exibida uma janela que exibe a(s) porta(s) para a(s) qual(is) o tráfego é permitido. Verifique se há uma regra para permitir tráfego de seu computador para a porta 3389 (RDP).

    Cada vez que sua instância for reiniciada, um novo endereço IP (e nome de host) será atribuído. Se o security group tiver uma regra que permite tráfego de entrada de um único endereço IP, esse endereço não poderá ser estático se seu computador estiver em uma rede corporativa ou se você estiver se conectando por um provedor de Internet (ISP). Em vez disso, especifique o intervalo de endereços IP usado por computadores do cliente. Se seu security group não tiver uma regra que permita tráfego de entrada como descrito na etapa anterior, adicione uma regra para seu security group. Para obter mais informações, consulte Autorizar tráfego de entrada para suas instâncias do Linux.

    Para obter mais informações sobre regras de grupos de segurança, consulte Regras de grupos de segurança no Guia do usuário da Amazon VPC.

Verifique a tabela de rotas para a sub-rede.

Você precisa de uma rota que envie todo o tráfego que sai da VPC para o gateway da Internet da VPC.

New console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Instâncias e, em seguida, sua instância.

  3. Na guia Networking (Redes), anote os valores para VPC ID (ID da VPC) e Subnet ID (ID de sub-rede).

  4. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  5. No painel de navegação, escolha Gateways da Internet. Verifique se há um gateway de internet associado à sua VPC. Caso contrário, escolha Create internet gateway (Criar gateway da Internet), insira um nome para o gateway da Internet e escolha Create internet gateway (Criar gateway da Internet). Em seguida, para o gateway da internet criado, escolha Actions (Ações), Attach to VPC (Anexar à VPC), selecione sua VPC e, em seguida, escolha Attach internet gateway (Anexar gateway da internet)para anexá-lo à sua VPC.

  6. No painel de navegação, selecione Sub-redes e selecione sua sub-rede.

  7. Na guia Route tabl (Tabela de rotas), verifique se há uma rota com 0.0.0.0/0 como destino e o gateway da Internet para sua VPC como alvo. Se você estiver se conectando à sua instância usando o endereço IPv6, verifique se há uma rota para todo o tráfego IPv6 (::/0) que aponta para o gateway de Internet. Caso contrário, faça o seguinte:

    1. Escolha o ID da tabela de rotas (rtb-xxxxxxxx) para navegar para a tabela de rotas.

    2. Na guia Routes (Rotas), escolha Edit routes (Editar rotas). Escolha Add route (Adicionar rota), use 0.0.0.0/0 como o destino, e o gateway da Internet como o destino. Para IPv6, escolha Add route (Adicionar rota), use ::/0 como o destino, e o gateway da Internet como o destino.

    3. Escolha Save routes (Salvar rotas).

Old console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Instâncias e, em seguida, sua instância.

  3. Na guia Descrição, anote os valores de ID de VPC e ID da sub-rede.

  4. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  5. No painel de navegação, escolha Gateways da Internet. Verifique se há um gateway de internet associado à sua VPC. Caso contrário, escolha Criar gateway da internet para criar um gateway da Internet. Selecione o gateway de internet e escolha Associar à VPC e siga as instruções para associá-la à sua VPC.

  6. No painel de navegação, selecione Sub-redes e selecione sua sub-rede.

  7. Na guia Tabela de rotas, verifique que há uma rota com 0.0.0.0/0 como o destino e o gateway de Internet para sua VPC como destino. Se você estiver se conectando à sua instância usando o endereço IPv6, verifique se há uma rota para todo o tráfego IPv6 (::/0) que aponta para o gateway de Internet. Caso contrário, faça o seguinte:

    1. Escolha o ID da tabela de rotas (rtb-xxxxxxxx) para navegar para a tabela de rotas.

    2. Na guia Routes (Rotas), escolha Edit routes (Editar rotas). Escolha Add route (Adicionar rota), use 0.0.0.0/0 como o destino, e o gateway da Internet como o destino. Para IPv6, escolha Add route (Adicionar rota), use ::/0 como o destino, e o gateway da Internet como o destino.

    3. Escolha Save routes (Salvar rotas).

Verifique a lista de controle de acesso (ACL) da rede para a sub-rede.

As ACLs da rede devem permitir tráfego de entrada do seu endereço IP local na porta 22 (para instâncias do Linux) ou na porta 3389 (para instâncias do Windows). Também deve permitir tráfego de saída para as portas efêmeras (1024-65535).

  1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação, escolha Sub-redes.

  3. Selecione a sub-rede.

  4. Na guia Network ACL (ACL da rede), em Inbound rules,(Regras de entrada), verifique se as regras permitem tráfego de entrada na porta obrigatória de seu computador. Caso contrário, exclua ou modifique a regra que está bloqueando tráfego.

  5. Em Outbound rules (Regras de saída), verifique se as regras permitem tráfego nas portas efêmeras para seu computador. Caso contrário, exclua ou modifique a regra que está bloqueando tráfego.

Caso seu computador esteja em uma rede corporativa

Pergunte ao administrador da rede se o firewall interno permite tráfego de entrada e saída do seu computador na porta 22 (para instâncias do Linux) ou na porta 3389 (para instâncias do Windows).

Se você tiver um firewall no seu computador, verifique se ele permite tráfego de entrada e de saída do seu computador na porta 22 (para instâncias do Linux) ou na porta 3389 (para instâncias do Windows).

Verifique se sua instância tem um endereço IPv4 público.

Se não tiver, associe um endereço IP elástico à sua instância. Para mais informações, consulte Endereços IP elásticos.

Verifique a carga de CPU na sua instância; o servidor pode estar sobrecarregado.

A AWS fornece automaticamente dados, como status de métricas e instâncias de Amazon CloudWatch, que é possível usar para ver quanta carga de CPU está na sua instância e, caso necessário, ajusta como suas cargas são manuseadas. Para mais informações, consulte Monitorar instâncias usando o CloudWatch.

  • Se sua carga for variável, será possível expandir ou reduzir automaticamente suas instâncias usando o Auto Scaling e o Elastic Load Balancing.

  • Se sua carga estiver crescendo constantemente, é possível mudá-la para um tipo de instância maior. Para mais informações, consulte Alterar o tipo de instância.

Para conectar-se à sua instância usando um endereço IPv6, verifique o seguinte:

  • Sua sub-rede deve estar associada a uma tabela de rotas que tenha uma rota para tráfego IPv6 (::/0) para um gateway de Internet.

  • As regras do security group devem permitir tráfego de entrada do seu endereço IPv6 local na porta apropriada (22 para Linux e 3389 para Windows).

  • As regras de Network ACL devem permitir tráfego de IPv6 de entrada e saída.

  • Se você executou a instância de uma AMI mais antiga, ela pode não estar configurada para DHCPv6 (endereços IPv6 não são automaticamente reconhecidos na interface de rede). Para obter mais informações, consulte Configurar o IPv6 em suas instâncias no Guia do usuário da Amazon VPC.

  • Seu computador local deve ter um endereço IPv6 e ser configurado para usar IPv6.

Erro: não foi possível carregar a chave ... Esperando: QUALQUER CHAVE PRIVADA

Se você tentar se conectar à sua instância e obter a mensagem de erro unable to load key ... Expecting: ANY PRIVATE KEY, o arquivo no qual a chave privada está armazenada foi configurado incorretamente. Se o arquivo da chave privada terminar em .pem, ele ainda poderá estar configurado incorretamente. Uma possível causa para um arquivo da chave privada configurado incorretamente é a ausência de um certificado.

Se o arquivo da chave privada estiver configurado incorretamente, siga estas etapas para solucionar o erro:

  1. Crie um novo par de chaves. Para mais informações, consulte Criar um par de chaves usando o Amazon EC2.

    nota

    Como alternativa, é possível criar um novo par de chaves usando uma ferramenta de terceiros. Para mais informações, consulte Criar um par de chaves usando uma ferramenta de terceiros e importe a chave pública para o Amazon EC2.

  2. Adicione o novo par de chaves à sua instância. Para mais informações, consulte Perdi minha chave privada. Como posso me conectar à minha instância do Linux?.

  3. Conecte-se à instância usando o novo par de chaves.

Erro: Chave do usuário não reconhecida pelo servidor

Se você usar o SSH para conectar à sua instância

  • Use ssh -vvv para obter o triplo de informações de depuração detalhadas (verbose) ao se conectar:

    ssh -vvv -i path/my-key-pair.pem my-instance-user-name@ec2-203-0-113-25.compute-1.amazonaws.com

    O exemplo de saída a seguir demonstra o que é possível ver se estivesse tentando se conectar à sua instância com uma chave não reconhecida pelo servidor:

    open/ANT/myusername/.ssh/known_hosts). debug2: bits set: 504/1024 debug1: ssh_rsa_verify: signature correct debug2: kex_derive_keys debug2: set_newkeys: mode 1 debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug2: set_newkeys: mode 0 debug1: SSH2_MSG_NEWKEYS received debug1: Roaming not allowed by server debug1: SSH2_MSG_SERVICE_REQUEST sent debug2: service_accept: ssh-userauth debug1: SSH2_MSG_SERVICE_ACCEPT received debug2: key: boguspem.pem ((nil)) debug1: Authentications that can continue: publickey debug3: start over, passed a different list publickey debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password debug3: authmethod_lookup publickey debug3: remaining preferred: keyboard-interactive,password debug3: authmethod_is_enabled publickey debug1: Next authentication method: publickey debug1: Trying private key: boguspem.pem debug1: read PEM private key done: type RSA debug3: sign_and_send_pubkey: RSA 9c:4c:bc:0c:d0:5c:c7:92:6c:8e:9b:16:e4:43:d8:b2 debug2: we sent a publickey packet, wait for reply debug1: Authentications that can continue: publickey debug2: we did not send a packet, disable method debug1: No more authentication methods to try. Permission denied (publickey).

Se você usar o PuTTY para se conectar à instância

  • Verifique se o arquivo de chave privada (.pem) foi convertido para o formato reconhecido pelo PuTTY (.ppk). Para obter mais informações sobre a conversão da sua chave privada, consulte Conectar-se à instância do Linux no Windows usando PuTTY.

    nota

    No PuTTYgen, carregue o arquivo de chave privada e selecione Salvar chave privada em vez de Gerar.

  • Verifique se você está se conectando com o nome de usuário adequado para sua AMI. Insira o nome de usuário na caixa Nome do host na janela Configuração do PuTTY.

    • Para a AMI do Amazon Linux 2 ou Amazon Linux, o nome do usuário é ec2-user.

    • Para uma AMI do CentOS, o nome do usuário é centos ou ec2-user.

    • Para uma AMI do Debian, o nome do usuário é admin.

    • Para uma AMI do Fedora, o nome do usuário é fedora ou ec2-user.

    • Para uma AMI do RHEL, o nome do usuário é ec2-user ou root.

    • Para uma AMI do SUSE, o nome do usuário é ec2-user ou root.

    • Para uma AMI do Ubuntu, o nome de usuário é ubuntu.

    • Para uma AMI do Oracle, o nome do usuário é ec2-user.

    • Para uma AMI do Bitnami, o nome do usuário é bitnami.

    • Caso contrário, verifique com o provedor da AMI.

  • Verifique se você tem uma regra do security group de entrada para permitir tráfego de entrada para a porta apropriada. Para mais informações, consulte Autorização de acesso de rede para suas instâncias.

Erro: permissão negada ou conexão fechada pela porta 22 de [instância]

Se você se conectar à instância usando SSH e obtiver algum dos erros a seguir, Host key not found in [directory], Permission denied (publickey), Authentication failed, permission denied, ou Connection closed by [instance] port 22, verifique se está se conectando com o nome de usuário apropriado para a AMI e se especificou o arquivo de chave privada (arquivo .pem) apropriado para a instância).

Os nomes de usuários apropriados são os seguintes:

  • Para a AMI do Amazon Linux 2 ou Amazon Linux, o nome do usuário é ec2-user.

  • Para uma AMI do CentOS, o nome do usuário é centos ou ec2-user.

  • Para uma AMI do Debian, o nome do usuário é admin.

  • Para uma AMI do Fedora, o nome do usuário é fedora ou ec2-user.

  • Para uma AMI do RHEL, o nome do usuário é ec2-user ou root.

  • Para uma AMI do SUSE, o nome do usuário é ec2-user ou root.

  • Para uma AMI do Ubuntu, o nome de usuário é ubuntu.

  • Para uma AMI do Oracle, o nome do usuário é ec2-user.

  • Para uma AMI do Bitnami, o nome do usuário é bitnami.

  • Caso contrário, verifique com o provedor da AMI.

Por exemplo, para usar um cliente SSH para se conectar a uma instância do Amazon Linux, use o seguinte comando:

ssh -i /path/my-key-pair.pem my-instance-user-name@ec2-203-0-113-25.compute-1.amazonaws.com

Confirme se você está usando um arquivo de chave privada que corresponde ao par de chaves que selecionou ao executar a instância.

New console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Instances (Instâncias) e, em seguida, selecione sua instância.

  3. Na guia Details (Detalhes), em Instance details (Detalhes da instância), verifique o valor do Nome do par de chaves.

  4. Se você não tiver especificado um par de chaves ao executar a instância, pode encerrar a instância e executar uma nova, especificando um par de chaves. Se essa for uma instância que você está usando mas não tiver mais o arquivo .pem para seu par de chaves, pode substituir o par de chaves por um novo. Para mais informações, consulte Perdi minha chave privada. Como posso me conectar à minha instância do Linux?.

Old console
  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Instances (Instâncias) e, em seguida, selecione sua instância.

  3. Na guia Descrição, verifique o valor de Nome do par de chaves.

  4. Se você não tiver especificado um par de chaves ao executar a instância, pode encerrar a instância e executar uma nova, especificando um par de chaves. Se essa for uma instância que você está usando mas não tiver mais o arquivo .pem para seu par de chaves, pode substituir o par de chaves por um novo. Para mais informações, consulte Perdi minha chave privada. Como posso me conectar à minha instância do Linux?.

Se você tiver gerado seu próprio par de chaves, garanta que o gerador de chaves está configurado para criar chaves RSA. Chaves DSA não são aceitas.

Se você obtiver um erro Permission denied (publickey) e nenhum dos casos acima se aplicar (por exemplo, você conseguiu se conectar previamente), as permissões no diretório inicial da sua instância podem ter sido alteradas. As permissões para /home/my-instance-user-name/.ssh/authorized_keys devem ser limitadas somente ao proprietário.

Para verificar as permissões na sua instância

  1. Pare sua instância e separe o volume do dispositivo raiz. Para obter mais informações, consulte Interromper e iniciar sua instância e Desvincular um volume do Amazon EBS de uma instância do Linux.

  2. Execute uma instância temporária na mesma zona de disponibilidade que sua instância atual (use uma AMI semelhante ou a mesma AMI usada para sua instância atual) e associe o volume do dispositivo raiz à instância temporária. Para mais informações, consulte Vincular um volume de Amazon EBS a uma instância.

  3. Conecte-se à instância temporária, crie um ponto de montagem e monte o volume associado. Para mais informações, consulte Disponibilizar um volume do Amazon EBS para uso no Linux.

  4. Na instância temporária, verifique as permissões do diretório /home/my-instance-user-name/ do volume associado. Se necessário, ajuste as permissões da seguinte forma:

    [ec2-user ~]$ chmod 600 mount_point/home/my-instance-user-name/.ssh/authorized_keys
    [ec2-user ~]$ chmod 700 mount_point/home/my-instance-user-name/.ssh
    [ec2-user ~]$ chmod 700 mount_point/home/my-instance-user-name
  5. Desmonte o volume, separe-o da instância temporária e reassocie-o à instância original. Especifique o nome correto do dispositivo para o volume do dispositivo raiz; por exemplo, /dev/xvda.

  6. Execute sua instância. Se você não precisar mais da instância temporária, pode encerrá-la.

Erro: arquivo de chave privada desprotegido

Seu arquivo de chave privada deve estar protegido contra operações de leitura e gravação por parte de qualquer outro usuário. Se sua chave privada puder ser lida ou gravada por qualquer pessoa menos você, o SSH ignorará sua chave e você verá a mensagem de advertência abaixo.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0777 for '.ssh/my_private_key.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: .ssh/my_private_key.pem Permission denied (publickey).

Se você vir uma mensagem semelhante ao tentar fazer login na sua instância, examine a primeira linha da mensagem de erro para verificar se está usando a chave pública correta para sua instância. O exemplo acima usa a chave privada .ssh/my_private_key.pem com permissões de arquivo 0777, que permitem que qualquer pessoa leia ou grave nesse arquivo. O nível de permissão é muito inseguro, por isso o SSH ignora essa chave.

Se você está se conectando do MacOS ou do Linux, execute o comando a seguir para corrigir esse erro, substituindo o caminho para o arquivo de chave privada.

[ec2-user ~]$ chmod 0400 .ssh/my_private_key.pem

Se você estiver se conectando do Windows, execute as etapas a seguir no computador local.

  1. Navegue até o arquivo .pem.

  2. Clique com o botão direito do mouse no arquivo .pem e selecione Properties (Propriedades).

  3. Escolha a guia Segurança.

  4. Selecione Advanced (Avançado).

  5. Verifique se você é o proprietário do arquivo. Caso contrário, altere o proprietário para seu nome de usuário.

  6. Selecione Disable inheritance (Desabilitar herança) e Remove all inherited permissions from this object (Remover todas as permissões herdadas deste objeto).

  7. Selecione Add (Adicionar), Select a principal (Selecionar um principal), insira seu nome de usuário e selecione OK.

  8. Na janela Permission Entry (Entrada de permissão), conceda as permissões Read (Leitura) e selecione OK.

  9. Clique em Apply (Aplicar) para garantir que todas as configurações sejam salvas.

  10. Selecione OK para fechar a janela Advanced Security Settings (Configurações avançadas de segurança).

  11. Selecione OK para fechar a janela Properties (Propriedades).

  12. É necessário ser capaz de se conectar à instância Linux no Windows por meio de SSH.

No prompt de comando do Windows, execute os comandos a seguir.

  1. No prompt de comando, navegue até o local do caminho do arquivo .pem.

  2. Execute o seguinte comando para redefinir e remover permissões explícitas:

    icacls.exe $path /reset
  3. Execute o seguinte comando para conceder permissões de leitura ao usuário atual:

    icacls.exe $path /GRANT:R "$($env:USERNAME):(R)"
  4. Execute o seguinte comando para desabilitar a herança e remover permissões herdadas.

    icacls.exe $path /inheritance:r
  5. É necessário ser capaz de se conectar à instância Linux no Windows por meio de SSH.

Erro: a chave privada deve começar com "-----BEGIN RSA PRIVATE KEY-----" e terminar com "-----END RSA PRIVATE KEY-----"

Se usar uma ferramenta de terceiros, como ssh-keygen, para criar um par de chaves RSA, ela gerará a chave privada no formato de chave OpenSSH. Quando você se conecta à sua instância, se você usar a chave privada no formato OpenSSH para descriptografar a senha, você receberá o erro Private key must begin with "-----BEGIN RSA PRIVATE KEY-----" and end with "-----END RSA PRIVATE KEY-----".

Para resolver o erro, a chave privada deve estar no formato PEM. Use o comando a seguir para criar a chave privada no formato PEM:

ssh-keygen -m PEM

Erro: o servidor recusou nossa chave ou não há métodos de autenticação compatíveis

Se você usar o PuTTY para se conectar à instância e obtiver algum dos erros a seguir, Erro: o servidor recusou nossa chave ou Erro: não há métodos de autenticação compatíveis, verifique se está se conectando com o nome de usuário apropriado para a AMI. Digite o nome de usuário em Nome do usuário na janela Configuração do PuTTY.

Os nomes de usuários apropriados são os seguintes:

  • Para a AMI do Amazon Linux 2 ou Amazon Linux, o nome do usuário é ec2-user.

  • Para uma AMI do CentOS, o nome do usuário é centos ou ec2-user.

  • Para uma AMI do Debian, o nome do usuário é admin.

  • Para uma AMI do Fedora, o nome do usuário é fedora ou ec2-user.

  • Para uma AMI do RHEL, o nome do usuário é ec2-user ou root.

  • Para uma AMI do SUSE, o nome do usuário é ec2-user ou root.

  • Para uma AMI do Ubuntu, o nome de usuário é ubuntu.

  • Para uma AMI do Oracle, o nome do usuário é ec2-user.

  • Para uma AMI do Bitnami, o nome do usuário é bitnami.

  • Caso contrário, verifique com o provedor da AMI.

Você também deve verificar se o arquivo de chave privada (.pem) foi convertido corretamente para o formato reconhecido pelo PuTTY (.ppk). Para obter mais informações sobre a conversão da sua chave privada, consulte Conectar-se à instância do Linux no Windows usando PuTTY.

Não é possível fazer o ping da instância

O comando ping é um tipo de tráfego de ICMP — se você não conseguir fazer o ping da sua instância, verifique se as regras do grupo de segurança de entrada permitem tráfego de ICMP para a mensagem Echo Request de todas as origens, ou do computador ou da instância em que você está emitindo o comando.

Caso você não consiga emitir um comando ping por sua instância, assegure-se de que suas regras do security group de saída permitam tráfego de ICMP para a mensagem Echo Request a todos os destinos ou para o host no qual você está tentando fazer o ping.

Os comandos Ping também podem ser bloqueados por um firewall ou tempo de espera devido a problemas de latência de rede ou hardware. É necessário consultar o administrador de sistema ou de rede local para obter ajuda com mais solução de problemas.

Erro: Server unexpectedly closed network connection (A conexão de rede foi fechada inesperadamente pelo servidor)

Se você estiver se conectando à instância com o PuTTY e receber o erro "A conexão de rede foi fechada inesperadamente pelo servidor", verifique se os keepalives estão habilitados na página Conexão da Configuração do PuTTY para evitar ser desconectado. Alguns servidores desconectam clientes quando eles não recebem nenhum dado em determinado período. Defina os segundos entre os keepalives para 59 segundos.

Se você ainda tiver problemas após habilitar os keepalives, tente desabilitar o algoritmo de Nagle na página Conexão da Configuração do PuTTY.

Erro: falha na validação da chave do host para EC2 Instance Connect

Se você alternar as chaves do host da instância, as novas chaves do host não serão automaticamente carregadas para o banco de dados de chaves de host confiáveis da AWS. Isso faz com que a validação da chave do host apresente falha quando você tenta se conectar à instância usando o cliente EC2 Instance Connect baseado em navegador e você não consegue se conectar à instância.

Para resolver o erro, é necessário executar o script eic_harvest_hostkeys na instância, o que carregará sua nova chave de host para EC2 Instance Connect. O script está localizado em /opt/aws/bin/ nas instâncias do Amazon Linux 2 e em /usr/share/ec2-instance-connect/ nas instâncias do Ubuntu.

Amazon Linux 2

Para resolver o erro de falha de validação da chave de host em uma instância do Amazon Linux 2.

  1. Conecte-se à sua instância usando SSH.

    Faça a conexão usando a CLI EC2 Instance Connect ou o par de chaves de SSH atribuído à instância quando você a executou e o nome do usuário padrão da AMI usada para executar a instância. Para Amazon Linux 2, o nome do usuário padrão é ec2-user.

    Por exemplo, se a instância tiver sido executada usando o Amazon Linux 2, o nome DNS público da instância for ec2-a-b-c-d.us-west-2.compute.amazonaws.com e o par de chaves for my_ec2_private_key.pem, use o seguinte comando para o SSH na instância:

    $ 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 SSH.

  2. Navegue até a seguinte pasta.

    [ec2-user ~]$ cd /opt/aws/bin/
  3. Execute o seguinte comando na sua instância.


    [ec2-user ~]$ ./eic_harvest_hostkeys

    Observe que uma chamada bem-sucedida não resulta em saída.

    Agora é possível usar o cliente EC2 Instance Connect baseado em navegador para se conectar à instância.

Ubuntu

Para resolver o erro de falha de validação da chave de host em uma instância do Ubuntu

  1. Conecte-se à sua instância usando SSH.

    Faça a conexão usando a CLI EC2 Instance Connect ou o par de chaves de SSH atribuído à instância quando você a executou e o nome do usuário padrão da AMI usada para executar a instância. Para Ubuntu, o nome de usuário padrão é ubuntu.

    Por exemplo, se a instância tiver sido executada usando o Ubuntu, o nome DNS público da instância for ec2-a-b-c-d.us-west-2.compute.amazonaws.com e o nome do par de chaves for my_ec2_private_key.pem, use o seguinte comando para o SSH na instância:

    $ 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 SSH.

  2. Navegue até a seguinte pasta.

    [ec2-user ~]$ cd /usr/share/ec2-instance-connect/
  3. Execute o seguinte comando na sua instância.


    [ec2-user ~]$ ./eic_harvest_hostkeys

    Observe que uma chamada bem-sucedida não resulta em saída.

    Agora é possível usar o cliente EC2 Instance Connect baseado em navegador para se conectar à instância.

Perdi minha chave privada. Como posso me conectar à minha instância do Linux?

Se você perder a chave privada de uma instância com EBS, poderá recobrar o acesso à sua instância. É necessário parar a instância, separar seu volume raiz e associá-lo a outra instância como um volume de dados, modificar o arquivo authorized_keys com uma nova chave pública, mover o volume de volta para a instância original e reiniciar a instância. Para obter mais informações sobre executar, conectar e parar instâncias, consulte Ciclo de vida da instância.

Este procedimento é compatível apenas com instâncias com volumes raiz do EBS. Se o dispositivo raiz for um volume de armazenamento de instâncias, você não poderá usar esse procedimento para recuperar o acesso à instância. É necessário ter a chave privada para se conectar à instância. Para determinar o tipo de dispositivo raiz da sua instância, abra o console do Amazon EC2, escolha Instances (Instâncias), selecione a instância e verifique o valor de Root device type (Tipo de dispositivo raiz) na guia Description (Descrição) do console antigo, ou na guia Detalhe no novo console. O valor é ebs ou instance store.

Além das etapas a seguir, há outras formas de se conectar à instância do Linux em caso de perda da chave privada. Para obter mais informações, consulte Como posso me conectar à instância do Amazon EC2 se tiver perdido meu par de chaves SSH após o lançamento inicial?

Etapa 1: Criar um novo par de chaves

Crie um novo par de chaves usando o console do Amazon EC2 ou uma ferramenta de terceiros. Se você quiser nomear seu novo par de chaves exatamente igual ao par de chaves privadas perdido, primeiro exclua o par de chaves existente. Para obter mais informações sobre como criar um par de chaves, consulte Criar um par de chaves usando o Amazon EC2 ou Criar um par de chaves usando uma ferramenta de terceiros e importe a chave pública para o Amazon EC2.

Etapa 2: Obter informações sobre a instância original e seu volume raiz

Anote as seguintes informações, porque elas serão necessárias para a conclusão deste procedimento.

Como obter informações sobre a instância original

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. Escolha Instâncias no painel de navegação e selecione a instância à qual você deseja se conectar. (Nós a chamamos de instância original.)

  3. Na guia Details (Detalhes) , anote o ID da instância e a ID da AMI.

  4. Na guia Networking (Redes), anote a zona de disponibilidade.

  5. Na guia Storage (Armazenamento), em Root device name (Nome do dispositivo raiz), anote o nome do dispositivo para o volume raiz (por exemplo, /dev/xvda). Em seguida, em Block devices (Dispositivos de bloco), encontre este nome do dispositivo e anote o ID do volume (por exemplo, vol-0a1234b5678c910de).

Etapa 3: Interromper a instância original

Escolha Instance state (Estado da instância) e Stop instance (Interromper instância). Se essa opção estiver desabilitada, a instância já foi interrompida ou o dispositivo raiz é um volume de armazenamento de instâncias.

Atenção

Quando você interrompe uma instância, os dados em todos os volumes de armazenamento de instâncias são apagados. Para manter dados longe dos volumes de armazenamento de instância, faça backup no armazenamento persistente.

Etapa 4: Executar uma instância temporária

New console

Para executar uma instância temporária

  1. No painel de navegação, escolha Instances (Instâncias) e Launch instances (Executar instâncias).

  2. Na seção Name and tags (Nome e etiquetas), em Name (Nome), insira Temporary (Temporário).

  3. Na seção Application and OS Images (Imagens de aplicações e SO), selecione a mesma AMI usada para iniciar a instância original. Se essa AMI estiver indisponível, será possível criar uma AMI que pode usar a partir da instância interrompida. Para obter mais informações, consulte Criar uma AMI do Linux baseada no Amazon EBS.

  4. Na seção Instance type (Tipo de instância), mantenha o tipo de instância padrão.

  5. Na seção Key pair (Par de chaves), em Key pair name (Nome do par de chaves), selecione o par de chaves existente para usar ou crie um novo.

  6. Na seção Network settings (Configurações de rede), selecione Edit (Editar), e, em seguida, em Subnet (Sub-rede), selecione uma sub-rede na mesma zona de disponibilidade que a instância original.

  7. No painel Summary (Resumo) painel, escolha Launch (Iniciar).

Old console

Escolha Launch Instance (Executar instância) e use o assistente de execução para executar uma instância temporária com as seguintes opções:

  • Na página Escolha uma AMI, selecione a mesma AMI usada para executar a instância original. Se essa AMI estiver indisponível, será possível criar uma AMI que pode usar a partir da instância interrompida. Para mais informações, consulte Criar uma AMI do Linux baseada no Amazon EBS.

  • Na página Escolher um tipo de instância, deixe o tipo de instância padrão que o assistente seleciona para você.

  • Na página Configure Instance Details (Configurar detalhes da instância) especifique a mesma zona de disponibilidade que a instância original. Se você estiver executando uma instância em uma VPC, selecione uma sub-rede nesta zona de disponibilidade.

  • Na página Adicionar tags, adicione a tag Name=Temporary à instância para indicar que isso é uma instância temporária.

  • Na página Revisar, escolha Iniciar. Escolha o par de chaves criado na Etapa 1 e selecione Iniciar instâncias.

Etapa 5: Separar o volume raiz da instância original e associá-lo à instância temporária

  1. No painel de navegação, selecione Volumes e selecione o volume do dispositivo raiz da instância original (você anotou o ID do volume em uma etapa anterior). Escolha Actions (Ações), Detach Volume (Desanexar volume) e Yes, Detach (Sim, desanexar). Espere o estado do volume tornar-se available. (É possível precisar escolher o ícone Atualizar.)

  2. Com o volume ainda selecionado, escolha Ações e, em seguida, Associar volume. Selecione o ID da instância temporária, anote o nome do dispositivo especificado em Device (Dispositivo) (por exemplo, /dev/sdf) e selecione Attach (Anexar).

    nota

    Se você tiver executado a instância original a partir de uma AMI de AWS Marketplace e seu volume contiver códigos de AWS Marketplace, você deverá primeiro parar a instância temporária antes de associar o volume.

Etapa 6: Adicionar a nova chave pública authorized_keys no volume original montado à instância temporária

  1. Conecte-se à instância temporária.

  2. Na instância temporária, monte o volume que você associou à instância de forma que possa acessar seu sistema de arquivos. Por exemplo, se o nome do dispositivo for /dev/sdf, use os comandos a seguir para montar o volume como /mnt/tempvol.

    nota

    O nome de dispositivo pode aparecer de forma diferente em sua instância. Por exemplo, dispositivos montados como /dev/sdf podem ser exibidos como /dev/xvdf na instância. Algumas versões do Red Hat (ou suas variantes, como o CentOS) podem até mesmo incrementar a letra final com 4 caracteres, em que /dev/sdf torna-se /dev/xvdk.

    1. Use o comando lsblk determinar se o volume é particionado.

      [ec2-user ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 8G 0 disk └─xvda1 202:1 0 8G 0 part / xvdf 202:80 0 101G 0 disk └─xvdf1 202:81 0 101G 0 part xvdg 202:96 0 30G 0 disk

      No exemplo acima, /dev/xvda e /dev/xvdf são volumes particionados, e /dev/xvdg não é. Se seu volume estiver particionado, você montará a partição (/dev/xvdf1) em vez do dispositivo raw (/dev/xvdf) nas próximas etapas.

    2. Crie um diretório temporário para montar o volume.

      [ec2-user ~]$ sudo mkdir /mnt/tempvol
    3. Monte o volume (ou a partição) no ponto de montagem temporário usando o nome do volume ou do dispositivo identificado anteriormente. O comando necessário depende do sistema de arquivos do sistema operacional. Observe que o nome de dispositivo pode aparecer de forma diferente em sua instância. Consulte note nesta seção para obter mais informações.

      • Amazon Linux, Ubuntu e Debian

        [ec2-user ~]$ sudo mount /dev/xvdf1 /mnt/tempvol
      • Amazon Linux 2, CentOS, SUSE Linux 12 e RHEL 7.x

        [ec2-user ~]$ sudo mount -o nouuid /dev/xvdf1 /mnt/tempvol
    nota

    Se você receber um erro informando que o sistema de arquivos está corrompido, execute o seguinte comando para usar o utilitário fsck para verificar o sistema de arquivos e reparar quaisquer problemas:

    [ec2-user ~]$ sudo fsck /dev/xvdf1
  3. Pela instância temporária, use o comando a seguir para atualizar authorized_keys no volume montado com a nova chave pública nova de authorized_keys para a instância temporária.

    Importante

    Os exemplos a seguir usam o nome de usuário do Amazon Linux ec2-user. É possível precisar substituir um nome de usuário diferente, como ubuntu para instâncias Ubuntu.

    [ec2-user ~]$ cp .ssh/authorized_keys /mnt/tempvol/home/ec2-user/.ssh/authorized_keys

    Se essa cópia tiver sido bem-sucedida, será possível passar para a próxima etapa.

    (Opcional) Caso contrário, se você não tiver permissão para editar arquivos em /mnt/tempvol, será necessário atualizar o arquivo usando sudo e conferir as permissões no arquivo para verificar se é possível fazer login na instância original. Use o comando a seguir para verificar as permissões no arquivo:

    [ec2-user ~]$ sudo ls -l /mnt/tempvol/home/ec2-user/.ssh total 4 -rw------- 1 222 500 398 Sep 13 22:54 authorized_keys

    Nesta saída de exemplo, 222 é o ID do usuário e 500 é o ID do grupo. Em seguida, use sudo para executar novamente o comando de cópia que falhou.

    [ec2-user ~]$ sudo cp .ssh/authorized_keys /mnt/tempvol/home/ec2-user/.ssh/authorized_keys

    Execute o comando a seguir novamente para determinar se as permissões foram alteradas.

    [ec2-user ~]$ sudo ls -l /mnt/tempvol/home/ec2-user/.ssh

    Se o ID do usuário e do grupo tiverem sido alterados, use o comando a seguir para restaurá-los.

    [ec2-user ~]$ sudo chown 222:500 /mnt/tempvol/home/ec2-user/.ssh/authorized_keys

Etapa 7: Desmontar e separar o volume original da instância temporária e associá-lo novamente à instância original

  1. Na instância temporária, desmonte o volume que você associou para que possa reassociá-lo à instância original. Por exemplo, use o comando a seguir para desmontar o volume em /mnt/tempvol.

    [ec2-user ~]$ sudo umount /mnt/tempvol
  2. Desassocie o volume da instância temporária (você o desmontou na etapa anterior): no console do Amazon EC2, selecione o volume do dispositivo raiz da instância original (você anotou o ID do volume em uma etapa anterior), escolha Actions (Ações), Detach Volume (Desassociar volume) e, depois, selecione Yes, Detach (Sim, desassociar). Espere o estado do volume tornar-se available. (É possível precisar escolher o ícone Atualizar.)

  3. Associe o volume novamente à instância original: com o volume ainda selecionado, escolha Actions (Ações), Attach Volume (Associar volume). Selecione o ID da instância original, especifique o nome do dispositivo anotado anteriormente na Etapa 2 para o anexo do dispositivo raiz original (/dev/sda1 ou /dev/xvda) e selecione Anexar.

    Importante

    Se você não especificar o mesmo nome do dispositivo do anexo original, não poderá iniciar a instância original. O Amazon EC2 espera que o volume raiz seja sda1 ou /dev/xvda.

Etapa 8: Conectar-se à instância original usando o novo par de chaves

Selecione a instância original e escolha Instance state (Estado da instância) e Start instance (Iniciar instância). Após a instância entrar no estado running, é possível se conectar a ela usando o arquivo de chave privada do seu novo par de chaves.

nota

Se o nome do novo par de chaves e do arquivo de chaves privadas correspondente for diferente do nome do par de chaves original, especifique o nome do novo arquivo de chave privada conectado à sua instância.

Etapa 9: Limpeza

(Opcional) É possível encerrar a instância temporária se não tiver utilização adicional para ela. Selecione a instância temporária e escolha Instance state (Estado da instância) e Terminate instance (Encerrar instância).