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

Resolução de problemas para conectar-se à 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 Windows, consulte Solução de problemas das 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 do Amazon Linux, o nome de usuário é ec2-user.

    • Para um AMI do CentOS, o nome de usuário é centos.

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

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

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

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

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

    • Caso contrário, se ec2-user e root não funcionarem, verifique com o provedor de 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 se o Estado da instância está em execução e se as Verificações de status foram aprovadas.

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.

    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 (visualizar 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 (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 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 mais informações, consulte Autorização de acesso de rede para suas instâncias.

      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.

    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 que 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 Network ACLs devem permitir tráfego de entrada e de saída do seu endereço IP local na porta apropriada. A Network ACL padrão permite todo o tráfego de entrada e saída.

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

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

    3. Na guia Description (Descrição), localize Network ACL (Conexão ACL) e escolha o seu ID (acl-xxxxxxxx).

    4. Selecione a Network ACL. Na guia Regras de entrada, verifique se as regras permitem tráfego a partir do seu computador. Caso contrário, exclua ou modifique a regra que está bloqueando tráfego do seu computador.

    5. Na guia Regras de saída, verifique se as regras permitem tráfego para o seu computador. Caso contrário, exclua ou modifique a regra que está bloqueando tráfego para seu computador.

  • Se seu computador estiver em uma rede corporativa, pergunte ao administrador de 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 obter mais informações, consulte Endereços IP elásticos.

  • Verifique a carga da CPU na instância. O servidor pode estar sobrecarregado. A AWS fornece automaticamente dados, como status de métricas e status de Amazon CloudWatch, que você pode usar para ver quanta carga de CPU estiver na sua instância e, caso necessário, ajusta como suas cargas são manuseadas. Para obter mais informações, consulte Monitoramento de instâncias usando o CloudWatch.

    • Se sua carga for variável, você poderá 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 obter 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ê tiver executado sua instância de uma AMI mais antiga, isso pode não ser configurado 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 é 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 obter mais informações, consulte Opção 1: criar um par de chaves usando o Amazon EC2.

  2. Adicione o novo par de chaves à sua instância. Para obter mais informações, consulte Conectar-se à instância do Linux em caso de perda da chave privada.

  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 você pode 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 do Amazon Linux, o nome de usuário é ec2-user.

    • Para um AMI do CentOS, o nome de usuário é centos.

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

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

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

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

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

    • Caso contrário, se ec2-user e root não funcionarem, verifique com o provedor de 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 seguintes erros, 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 (.pem) apropriado para a instância.

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

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

  • Para um AMI do CentOS, o nome de usuário é centos.

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

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

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

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

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

  • Caso contrário, se ec2-user e root não funcionarem, verifique com o provedor de 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.

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

  2. Selecione sua instância. Na guia Descrição, verifique o valor de Nome do par de chaves.

  3. 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 obter mais informações, consulte Conectar-se à instância do Linux em caso de perda da chave privada.

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 Separar 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 obter mais informações, consulte Associar um volume do Amazon EBS a uma instância.

  3. Conecte-se à instância temporária, crie um ponto de montagem e monte o volume associado. Para obter 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. Para corrigir o erro, execute o comando a seguir substituindo o caminho pelo seu arquivo de chave privada.

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

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 do Amazon Linux, o nome de usuário é ec2-user.

  • Para um AMI do CentOS, o nome de usuário é centos.

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

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

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

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

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

  • Caso contrário, se ec2-user e root não funcionarem, verifique com o provedor de 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. Você deve 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.