

# Solucionar problemas de conexão com a instância do Linux do Amazon EC2
<a name="TroubleshootingInstancesConnecting"></a>

As informações e os erros comuns a seguir podem ajudar você a solucionar problemas de conexão com a instância Linux. 

**Topics**
+ [Causas comuns de problemas de conexão](#TroubleshootingInstancesCommonCauses)
+ [Erro ao se conectar à sua instância: limite de tempo da conexão atingido](#TroubleshootingInstancesConnectionTimeout)
+ [Erro: não foi possível carregar a chave ... Esperando: QUALQUER CHAVE PRIVADA](#troubleshoot-instance-connect-key-file)
+ [Erro: Chave do usuário não reconhecida pelo servidor](#TroubleshootingInstancesServerError)
+ [Erro: permissão negada ou conexão fechada pela porta 22 de [instância]](#TroubleshootingInstancesConnectingSSH)
+ [Erro: arquivo de chave privada desprotegido](#troubleshoot-unprotected-key)
+ [Erro: a chave privada deve começar com "-----BEGIN RSA PRIVATE KEY-----" e terminar com "-----END RSA PRIVATE KEY-----"](#troubleshoot-private-key-file-format)
+ [Erro: falha na verificação de chaves do host](#troubleshoot-host-key-verification-failed)
+ [Erro: o servidor recusou nossa chave *ou* não há métodos de autenticação compatíveis](#TroubleshootingInstancesConnectingPuTTY)
+ [Não é possível fazer o ping da instância](#troubleshoot-instance-ping)
+ [Erro: Server unexpectedly closed network connection (A conexão de rede foi fechada inesperadamente pelo servidor)](#troubleshoot-ssh)
+ [Erro: falha na validação da chave do host para EC2 Instance Connect](#troubleshoot-host-key-validation)
+ [Não é possível conectar a uma instância Ubuntu usando o EC2 Instance Connect](#troubleshoot-eic-ubuntu)
+ [Perdi minha chave privada. Como posso me conectar à instância?](#replacing-lost-key-pair)

## Causas comuns de problemas de conexão
<a name="TroubleshootingInstancesCommonCauses"></a>

Recomendamos que você comece a solucionar problemas de conexão de instâncias verificando se realizou com precisão as tarefas a seguir.

**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 que você usou para iniciar 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 usuários do sistema na instância do Linux do Amazon EC2](managing-users.md).
+ **Obtenha o nome de usuário padrão da AMI que você usou para iniciar a instância.**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html)

**Verificar se as regras do grupo de segurança permitem tráfego**  
Verifique se o grupo de segurança associado à instância permite tráfego SSH de entrada do endereço IP. O grupo de segurança padrão para a VPC não permite o tráfego SSH de entrada por padrão. O grupo de segurança criado pelo assistente de execução de instância permite o tráfego SSH de entrada por padrão. Para ver as etapas para adicionar uma regra para o tráfego SSH de entrada à sua instância do Linux, consulte [Regras para se conectar a instâncias pelo computador](security-group-rules-reference.md#sg-rules-local-access). Para obter as etapas de verificação, consulte [Erro ao se conectar à sua instância: limite de tempo da conexão atingido](#TroubleshootingInstancesConnectionTimeout).

**Verificar se a instância está pronta**  
Depois que você inicia uma instância, pode demorar alguns minutos para que ela fique pronta para aceitar solicitações de conexão. 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/](https://console.aws.amazon.com/ec2/).

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

1. Verifique o seguinte:

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

   1. Na coluna **Verificação de status**, verifique se sua instância passou nas duas verificações de status.

**Verifique se você atendeu a todos os pré-requisitos para se conectar**  
Certifique-se de ter todas as informações necessárias para se conectar. Para obter mais informações, consulte [Conectar-se à instância do Linux usando SSH](connect-to-linux-instance.md).  
**Conectar-se do Linux ou do macOS**  
Se o sistema operacional do computador local for Linux ou macOS X, verifique os seguintes pré-requisitos específicos para conexão com uma instância do Linux:
+ [Cliente SSH](connect-linux-inst-ssh.md)
+ [Conexão de instância do EC2](connect-linux-inst-eic.md)
+ [AWS Systems Manager Session Manager do](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html)
**Conectar do Windows**  
Se o sistema operacional do computador local for Windows, verifique os seguintes pré-requisitos específicos para conexão com uma instância do Linux:
+ [OpenSSH](connect-linux-inst-ssh.md)
+ [PuTTY](connect-linux-inst-from-windows.md)
+ [AWS Systems Manager Session Manager do](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html)
+ [Subsistema Windows para Linux](connect-linux-inst-ssh.md)

**Verificar se a instância é uma instância gerenciada**  
Não são permitidas conexões iniciadas pelo usuário para instâncias gerenciadas. Para determinar se a instância é gerenciada, encontre o campo **Gerenciada** da instância. Se o valor for **true**, essa é uma instância gerenciada. Para obter mais informações, consulte [Instâncias gerenciadas do Amazon EC2](amazon-ec2-managed-instances.md).

## Erro ao se conectar à sua instância: limite de tempo da conexão atingido
<a name="TroubleshootingInstancesConnectionTimeout"></a>

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 de grupo de segurança que permita tráfego de entrada proveniente do endereço IPv4 público do seu computador local na porta adequada.

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

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

1. 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. Verifique se existe uma regra que permita tráfego do computador local para a porta 22 (SSH).

   Se seu grupo de segurança não tiver uma regra que permita tráfego de entrada proveniente do seu computador local, adicione uma regra para seu grupo de segurança. Para obter mais informações, consulte [Regras para se conectar a instâncias pelo computador](security-group-rules-reference.md#sg-rules-local-access).

1. Para a regra que permite tráfego de entrada, verifique o campo **Source** (Origem). Se o valor for um só endereço IP e se o endereço IP não for estático, um novo endereço IP será atribuído sempre que você reiniciar o computador. Isso fará com que a regra não inclua o tráfego de endereço IP do seu computador. Talvez o endereço IP não seja estático se seu computador estiver em uma rede corporativa, se você estiver se conectando por um provedor de serviços de Internet (ISP), ou se seu endereço IP do computador for dinâmico e mudar sempre que você reiniciar o computador. Para garantir que a regra do grupo de segurança permita o tráfego de entrada do computador local, em vez de especificar um único endereço IP para **Source** (Origem), em vez disso, especifique o intervalo de endereços IP usado por seus computadores cliente.

   Para obter mais informações sobre regras de grupos de segurança, consulte [Regras de grupos de segurança](https://docs.aws.amazon.com/vpc/latest/userguide/security-group-rules.html) 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/](https://console.aws.amazon.com/ec2/).

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

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

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

1. 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.

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

1. 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.

   1. 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.

   1. 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 SSH de entrada do seu endereço IP local na porta 22. 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/](https://console.aws.amazon.com/vpc/).

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

1. Selecione a sub-rede.

1. 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.

1. 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.

Se você tiver um firewall no computador, verifique se ele permite tráfego de entrada e saída do computador na porta 22.

**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](elastic-ip-addresses-eip.md). 

**Verifique a carga de CPU na sua instância; o servidor pode estar sobrecarregado.**  
AWSA 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 obter mais informações, consulte [Monitorar instâncias usando o CloudWatch](using-cloudwatch.md).
+ Se sua carga for variável, será possível expandir ou reduzir automaticamente suas instâncias usando o [Auto Scaling](https://aws.amazon.com/autoscaling/) e o [Elastic Load Balancing](https://aws.amazon.com/elasticloadbalancing/). 
+ Se sua carga estiver crescendo constantemente, é possível mudá-la para um tipo de instância maior. Para obter mais informações, consulte [Alterações no tipo de instância do Amazon EC2](ec2-instance-resize.md). 

**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 grupo de segurança devem permitir tráfego de entrada do endereço IPv6 local na porta 22.
+ 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](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html#vpc-migrate-ipv6-dhcpv6) 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
<a name="troubleshoot-instance-connect-key-file"></a>

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 [Criar um par de chaves usando o Amazon EC2](create-key-pairs.md#having-ec2-create-your-key-pair).
**nota**  
Como alternativa, é possível criar um novo par de chaves usando uma ferramenta de terceiros. Para obter mais informações, consulte [Criar um par de chaves usando uma ferramenta de terceiros e importe a chave pública para o Amazon EC2](create-key-pairs.md#how-to-generate-your-own-key-and-import-it-to-aws).

1. Adicione o novo par de chaves à sua instância. Para obter mais informações, consulte [Perdi minha chave privada. Como posso me conectar à instância?](#replacing-lost-key-pair).

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

## Erro: Chave do usuário não reconhecida pelo servidor
<a name="TroubleshootingInstancesServerError"></a>

**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/key-pair-name.pem 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 usando PuTTY](connect-linux-inst-from-windows.md).
**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 apropriado para sua AMI. Insira o nome de usuário na caixa **Nome do host** na janela **Configuração do PuTTY**.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AWSEC2/latest/UserGuide/TroubleshootingInstancesConnecting.html)
+ Verifique se você tem uma regra do security group de entrada para permitir tráfego de entrada para a porta apropriada. Para obter mais informações, consulte [Regras para se conectar a instâncias pelo computador](security-group-rules-reference.md#sg-rules-local-access). 

## Erro: permissão negada ou conexão fechada pela porta 22 de [instância]
<a name="TroubleshootingInstancesConnectingSSH"></a>

Se você se conectar à instância usando SSH e encontrar qualquer um dos erros `Host key not found in [directory]`, `Permission denied (publickey)`, `Authentication failed, permission denied` ou `Connection closed by [instance] port 22`, verifique se está utilizando o nome de usuário correto para sua AMI *e* se especificou a chave privada adequada (arquivo `.pem)`) para a instância.

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


| A AMI usada para iniciar a instância | Nome de usuário padrão | 
| --- | --- | 
|  Amazon Linux  | ec2-user  | 
| CentOS | centos ou ec2-user | 
| Debian | admin | 
| Fedora  | fedora ou ec2-user | 
| FreeBSD | ec2-user | 
| RHEL | ec2-user ou root | 
| SUSE  | ec2-user ou root | 
| Ubuntu  | ubuntu | 
| Oracle  | ec2-user | 
| Bitnami  | bitnami | 
| Rocky Linux  | rocky | 
| Outros | Verificar 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/key-pair-name.pem 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/](https://console.aws.amazon.com/ec2/).

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

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

1. 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 [Perdi minha chave privada. Como posso me conectar à instância?](#replacing-lost-key-pair).

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/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 [Início e interrupção de instâncias do Amazon EC2](Stop_Start.md).

1. 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.

1. Conecte-se à instância temporária, crie um ponto de montagem e monte o volume associado.

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

   ```
   [ec2-user ~]$ chmod 600 mount_point/home/instance-user-name/.ssh/authorized_keys
   ```

   ```
   [ec2-user ~]$ chmod 700 mount_point/home/instance-user-name/.ssh
   ```

   ```
   [ec2-user ~]$ chmod 700 mount_point/home/instance-user-name
   ```

1. 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`.

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

## Erro: arquivo de chave privada desprotegido
<a name="troubleshoot-unprotected-key"></a>

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 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 a uma instância do Linux no Windows, execute as etapas a seguir no computador local.

1. Navegue até o arquivo .pem.

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

1. Escolha a guia **Segurança**.

1. Selecione **Advanced** (Avançado).

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

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

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

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

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

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

1. Selecione **OK** para fechar a janela **Properties** (Propriedades).

1. Você deve ser capaz de se conectar à instância do Linux no Windows usando 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.

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

   ```
   icacls.exe $path /reset
   ```

1. Execute o seguinte comando para conceder permissões de leitura ao usuário atual:

   ```
   icacls.exe $path /GRANT:R "$($env:USERNAME):(R)"
   ```

1. Execute o seguinte comando para desabilitar a herança e remover permissões herdadas.

   ```
   icacls.exe $path /inheritance:r
   ```

1. Você deve ser capaz de se conectar à instância do Linux no Windows usando SSH.

## Erro: a chave privada deve começar com "-----BEGIN RSA PRIVATE KEY-----" e terminar com "-----END RSA PRIVATE KEY-----"
<a name="troubleshoot-private-key-file-format"></a>

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: falha na verificação de chaves do host
<a name="troubleshoot-host-key-verification-failed"></a>

Esse erro ocorre quando há uma incompatibilidade entre a chave do host armazenada na instância no arquivo `known_hosts` e no cliente. Por exemplo, uma incompatibilidade pode ocorrer quando você se conectar a uma instância usando um endereço IP público e, em seguida, tenta se conectar a ela novamente usando um endereço IP público diferente. Isso pode acontecer depois que você adiciona ou remove um endereço IP elástico, pois isso modifica o endereço IP público de uma instância.

Para solucionar esse erro, comece confirmando que houve uma alteração esperada na chave do host ou na configuração da rede da instância. Antes de se conectar à instância, talvez também convém [verificar a impressão digital do host](connection-prereqs-general.md#connection-prereqs-fingerprint). Depois de se conectar à instância, você poderá remover a chave de host antiga do arquivo `known_hosts`. Para obter instruções, consulte a documentação da distribuição Linux em uso na sua instância.

## Erro: o servidor recusou nossa chave *ou* não há métodos de autenticação compatíveis
<a name="TroubleshootingInstancesConnectingPuTTY"></a>

Se você usar o PuTTY para se conectar à instância e obtiver algum dos erros a seguir, Error: Server refused our key ou Error: No supported authentication methods available, 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:


| A AMI usada para iniciar a instância | Nome de usuário padrão | 
| --- | --- | 
|  Amazon Linux  | ec2-user  | 
| CentOS | centos ou ec2-user | 
| Debian | admin | 
| Fedora  | fedora ou ec2-user | 
| FreeBSD | ec2-user | 
| RHEL | ec2-user ou root | 
| SUSE  | ec2-user ou root | 
| Ubuntu  | ubuntu | 
| Oracle  | ec2-user | 
| Bitnami  | bitnami | 
| Rocky Linux  | rocky | 
| Outros | Verificar com o provedor de AMI | 

Você também deve verificar:
+ Se está usando a versão mais recente do PuTTY. Para obter mais informações, consulte a [página do PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/).
+ 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 usando PuTTY](connect-linux-inst-from-windows.md).

## Não é possível fazer o ping da instância
<a name="troubleshoot-instance-ping"></a>

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.

`Ping`Os comandos 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)
<a name="troubleshoot-ssh"></a>

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
<a name="troubleshoot-host-key-validation"></a>

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.

   É possível se conectar usando a CLI do 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 o 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 um cliente SSH](connect-linux-inst-ssh.md).

1. Navegue até a seguinte pasta.

   ```
   [ec2-user ~]$ cd /opt/aws/bin/
   ```

1. 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.

   É possível se conectar usando a CLI do 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 um cliente SSH](connect-linux-inst-ssh.md).

1. Navegue até a seguinte pasta.

   ```
   [ec2-user ~]$ cd /usr/share/ec2-instance-connect/
   ```

1. 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.

------

## Não é possível conectar a uma instância Ubuntu usando o EC2 Instance Connect
<a name="troubleshoot-eic-ubuntu"></a>

Se você usar o EC2 Instance Connect para se conectar à sua instância do Ubuntu e receber um erro ao tentar se conectar, poderá usar as informações a seguir para tentar corrigir o problema.

**Possível causa**

O pacote `ec2-instance-connect` na instância não é a versão mais recente.

**Solução**

Atualize o pacote `ec2-instance-connect` na instância para a versão mais recente, desta forma:

1. [Conecte-se](connect-to-linux-instance.md) à sua instância usando um método diferente do EC2 Instance Connect.

1. Execute o comando a seguir em sua instância para atualizar o pacote `ec2-instance-connect` para a versão mais recente.

   ```
   apt update && apt upgrade
   ```

## Perdi minha chave privada. Como posso me conectar à instância?
<a name="replacing-lost-key-pair"></a>

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 [Alterações do estado de instâncias do Amazon EC2](ec2-instance-lifecycle.md).

Este procedimento é compatível apenas com instâncias com volumes raiz do EBS. Se a instância tiver um volume raiz do tipo armazenamento de instância, não é possível recuperar o acesso usando este procedimento. É necessário ter a chave privada para se conectar à instância. Para determinar o tipo de volume raiz da instância, abra o console do Amazon EC2, escolha **Instâncias**, selecione a instância, clique na guia **Armazenamento** e, na seção **Detalhes do dispositivo raiz**, verifique o valor de **Tipo de dispositivo raiz**. 

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?](https://repost.aws/knowledge-center/user-data-replace-key-pair-ec2)

**Topics**
+ [Etapa 1: Criar um novo par de chaves](#step-1-create-new-key-pair)
+ [Etapa 2: Obter informações sobre a instância original e seu volume raiz](#step-2-get-info-about-original-instance)
+ [Etapa 3: Interromper a instância original](#step-3-stop-original-instance)
+ [Etapa 4: Executar uma instância temporária](#step-4-launch-temp-instance)
+ [Etapa 5: Separar o volume raiz da instância original e associá-lo à instância temporária](#step-5-detach-root-volume-and-attach-to-temp-instance)
+ [Etapa 6: Adicionar a nova chave pública `authorized_keys` no volume original montado à instância temporária](#step-6-add-new-public-key-to-authorized_keys)
+ [Etapa 7: Desmontar e separar o volume original da instância temporária e associá-lo novamente à instância original](#step-7-unmount-detach-volume-and-reattach-to-original-instance)
+ [Etapa 8: Conectar-se à instância original usando o novo par de chaves](#step-8-connect-to-original-instance)
+ [Etapa 9: Limpeza](#step-9-clean-up)

### Etapa 1: Criar um novo par de chaves
<a name="step-1-create-new-key-pair"></a>

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](create-key-pairs.md#having-ec2-create-your-key-pair) ou [Criar um par de chaves usando uma ferramenta de terceiros e importe a chave pública para o Amazon EC2](create-key-pairs.md#how-to-generate-your-own-key-and-import-it-to-aws).

### Etapa 2: Obter informações sobre a instância original e seu volume raiz
<a name="step-2-get-info-about-original-instance"></a>

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/](https://console.aws.amazon.com/ec2/).

1. 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*.)

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

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

1. 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
<a name="step-3-stop-original-instance"></a>

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

**Atenção**  
Quando você interrompe uma instância, os dados nos volumes de armazenamento de instância são perdidos. Para preservar esses dados, faça backup no armazenamento persistente.

### Etapa 4: Executar uma instância temporária
<a name="step-4-launch-temp-instance"></a>

**Para executar uma instância temporária**

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

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

1. 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 [Criação de uma AMI baseada no Amazon EBS](creating-an-ami-ebs.md).

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

1. 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.

1. 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.

1. No painel **Summary** (Resumo) painel, escolha **Launch** (Iniciar).

### Etapa 5: Separar o volume raiz da instância original e associá-lo à instância temporária
<a name="step-5-detach-root-volume-and-attach-to-temp-instance"></a>

1. No painel de navegação, escolha **Volumes** e selecione o volume raiz da instância original, cujo ID você registrou na 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.)

1. Com o volume ainda selecionado, escolha **Actions** (Ações) e, em seguida, **Attach volume** (Anexar volume). Selecione o ID de instância 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
<a name="step-6-add-new-public-key-to-authorized_keys"></a>

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

1. 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`.<a name="device-name"></a>
**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.

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

      ```
      [ec2-user ~]$ sudo mkdir /mnt/tempvol
      ```

   1. 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](#device-name) na etapa 6 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
   ```

1. 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 `ec2-user` do Amazon Linux. É possível precisar substituir um nome de usuário diferente, como `ubuntu` para instâncias do 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
<a name="step-7-unmount-detach-volume-and-reattach-to-original-instance"></a>

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
   ```

1. Para desanexar o volume da instância temporária (que você desmontou anteriormente): no console do Amazon EC2, escolha **Volumes** no painel de navegação, selecione o volume raiz da instância original, cujо ID você anotou anteriormente, clique em **Ações**, escolha **Desanexar volume** e, em seguida, selecione **Desanexar**. Espere o estado do volume tornar-se `available`. (É possível precisar escolher o ícone Atualizar.)

1. Associe o volume novamente à instância original: com o volume ainda selecionado, escolha **Actions** (Ações), **Attach Volume** (Anexar volume). Selecione o ID da instância original, informe o nome do dispositivo que você anotou na [Etapa 2](#step-2-get-info-about-original-instance) para a anexação do volume raiz original (`/dev/sda1` ou `/dev/xvda`) e, em seguida, escolha **Anexar volume**.
**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 esteja em `sda1` ou `/dev/xvda`.

### Etapa 8: Conectar-se à instância original usando o novo par de chaves
<a name="step-8-connect-to-original-instance"></a>

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
<a name="step-9-clean-up"></a>

(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 **IEstado da instância** e **Encerrar instância**.