Por que estou recebendo os erros UPSTREAM_ERROR, UPSTREAM_NOT_FOUND ou CLIENT_UNAUTHORIZED ao acessar minha instância do Lightsail usando o console SSH baseado em navegador?

8 minuto de leitura
0

Eu recebo uma mensagem UPSTREAM_ERROR [515], UPSTREAM_NOT_FOUND [519] ou CLIENT_UNAUTHORIZED [769] quando me conecto à minha instância do Amazon Lightsail usando o console SSH baseado em navegador. Como corrigir esses erros?

Breve descrição

Se você receber um erro ao se conectar à sua instância do Lightsail e o erro estiver relacionado ao SSH, talvez você veja uma das seguintes mensagens:

  • “Your instance encountered an error and has closed the connection. Try again or contact customer support. UPSTREAM_ERROR [515]” (Sua instância encontrou um erro e fechou a conexão. Tente novamente ou entre em contato com o suporte ao cliente. UPSTREAM_ERROR [515])
  • “An error occurred and we were unable to connect or stay connected to your instance. If this instance has just started up, try again in a minute or two. UPSTREAM_NOT_FOUND [519]” (Ocorreu um erro e não conseguimos nos conectar ou permanecer conectados à sua instância. Se essa instância tiver acabado de ser iniciada, tente novamente em um minuto ou dois. UPSTREAM_NOT_FOUND [519])
  • “Login failed. If this instance has just started up, try again in a minute or two. CLIENT_UNAUTHORIZED [769]" (Falha no login. Se esta instância tiver acabado de inicializar, tente novamente daqui a um ou dois minutos. CLIENT_UNAUTHORIZED [769]" )

Os erros UPSTREAM_ERROR [515] e UPSTREAM_NOT_FOUND [519] indicam que sua instância do Lightsail não pode ser acessada quando SSH for usado. A seguir estão os motivos comuns para estes erros:

  • Falhas de inicialização da instância, falhas na verificação de status da instância. ou utilização excessiva de recursos na instância.
  • Um firewall no nível do sistema operacional está bloqueando o acesso à porta SSH.
  • A porta SSH padrão (22) é alterada para outra.
  • O serviço SSH está inativo.

O erro CLIENT_UNAUTHORIZED [769] indica que existe um problema de autenticação SSH na instância do Lightsail. Veja a seguir os motivos comuns desse erro:

  • Configuração incorreta da chave do sistema Lightsail em /etc/ssh/lightsail_instance_ca.pub.
  • Você atualizou sua instância do Ubuntu de uma versão mais antiga para 20.04 ou posterior.

Resolução

Falhas de inicialização de instâncias, falhas na verificação de status da instância ou utilização excessiva de recursos na instância

Visualize as métricas de verificação de status da instância para determinar se a instância falhou na verificação de status do sistema ou na verificação de status da instância.

Verificação do status do sistema

Se a verificação de status do sistema falhar, o hardware subjacente da instância não estará íntegro. Para corrigir o problema, pare e inicie a instância. Isso migra a instância para um hardware saudável.

Aviso: esteja ciente de que o endereço IP público da instância muda a cada parada e inicialização da instância. Se você quiser que o endereço IP permaneça o mesmo em cada parada e inicialização da instância, anexe um endereço IP estático.

Verificação de status da instância

Se a verificação de status da instância falhar, um problema no nível do sistema operacional pode estar causando erros de inicialização. Ou, os recursos da instância, como CPU ou memória, podem ser utilizados em excesso. Para obter as etapas de solução de problemas, consulte Como solucionar problemas comuns que fazem com que minha instância do Lightsail pare de responder?

Um firewall no nível do sistema operacional está bloqueando o acesso à porta SSH

O acesso SSH baseado em navegador usa o endereço IP interno da Amazon para se conectar à instância do Lightsail. Alguns firewalls e arquivos de controle de acesso no nível do sistema operacional permitem acesso SSH somente a um conjunto de endereços IP e negam todos os outros. Nesse caso, você recebe o erro UPSTREAM_NOT_FOUND [519] ou UPSTREAM_ERROR [515]. O mesmo problema ocorrerá se um firewall estiver bloqueando por completo o acesso SSH.

Observação: exemplos de firewalls no nível do sistema operacional incluem Iptables e UFW, enquanto um exemplo de arquivo de controle é /etc/hosts.deny (Controle de acesso de hosts em instâncias baseadas em cPanel).

Para resolver o problema, siga um destes procedimentos:

  • Se o acesso SSH à instância usando o terminal ou a aplicação PuTTY funcionar, faça login na instância e remova as regras de negação do firewall e do arquivo /etc/hosts.deny.
  • Se você tiver uma instância cPanel, acesse o console WHM para remover as regras de firewall.
  • Se você não conseguir se conectar à instância usando SSH do terminal ou da aplicação PuTTY, desative o firewall usando um script de execução. O script de execução só pode ser adicionado durante a execução de uma instância. Para usar um script de inicialização para desativar firewalls no nível do sistema operacional, Iptables e UFW, faça o seguinte:

1.    Abra o console do Amazon Lightsail.

2.    Crie um snapshot manual da instância.

3.    Na guia Snapshots, emSnapshots manuais, selecione os três pontos ao lado do novo snapshot.

4.    Selecione Criar nova instância.

5.    Selecione a mesma zona de disponibilidade da instância anterior.

6.    Selecione Adicionar script de inicialização e, em seguida, adicione o seguinte script.

Observação: o exemplo a seguir desabilita o firewall UFW, libera todas as cadeias iptable ou regras de firewall e desativa o arquivo /etc/hosts.deny renomeando-o.

sudo ufw disable
sudo iptables -F
sudo mv /etc/hosts.deny /etc/hosts.deny_backup
sudo touch /etc/hosts.deny
sudo systemctl enable sshd
sudo systemctl restart sshd

7.    Escolha um novo plano de instância ou use o mesmo plano da instância anterior.

8.    Insira um nome para a instância e selecione Criar instância.

Depois que a nova instância começar a ser executada, aguarde de 10 a 15 minutos e tente se conectar a ela usando o console SSH baseado em navegador.

Observação: se a instância anterior tiver um endereço IP estático, você poderá usá-lo na nova instância. Desanexe o endereço IP estático e, em seguida, anexe-o à nova instância na guia Networking (Rede). Para obter mais informações, consulte Endereços IP estáticos no Amazon Lightsail.

O serviço SSH está inativo

Se o serviço SSH não estiver em execução ou estiver ativo na instância, a conexão SSH falhará e você receberá o erro UPSTREAM_NOT_FOUND [519]. Para solucionar o problema, configure o serviço AWS Systems Manager Session Manager para sua instância do Lightsail. Depois de configurar o gerenciador de sessões, acesse a instância sem o serviço SSH e corrija o problema de SSH.

As etapas básicas de solução de problemas de SSH incluem:

  • Revise os logs de autenticação SSH no arquivo /var/log/auth.log ou**/var/log/secure**, dependendo da distribuição do SO, para identificar os erros.
  • Teste a sintaxe do arquivo de configuração SSH e corrija os erros.
sudo sshd -t
sudo systemctl restart sshd

Configuração incorreta da chave de sistema Lightsail /etc/ssh/lightsail_instance_ca.pub

O Lightsail usa a chave de sistema /etc/ssh/lightsail_instance_ca.pub para ativar o acesso SSH baseado em navegador. Se o arquivo estiver ausente, a autenticação SSH falhará e você receberá o erro CLIENT_UNAUTHORIZED [769]. O mesmo erro ocorre quando a chave de sistema do Lightsail não é especificada no parâmetro TrustedUserCAKeys no arquivo de configuração SSH /etc/ssh/sshd_config.

Se a conexão SSH com a instância por meio do terminal ou da aplicação PuTTY funcionar, faça login na instância e confirme se o arquivo /etc/ssh/sshd_config existe e se ele contém a chave ssh-rsa.

Se o arquivo estiver ausente, recrie o arquivo usando as seguintes etapas:

1.    Execute o seguinte comando e confirme se você obtém a chave ssh-rsa na saída do comando:

sudo cat /var/lib/cloud/instance/user-data.txt | grep ^ssh-rsa

2.    Se o comando retornar a chave ssh-rsa na saída, execute os seguintes comandos para copiá-la para /etc/ssh/lightsail_instance_ca.pub:

sudo sh -c "cat /var/lib/cloud/instance/user-data.txt | grep ^ssh-rsa > /etc/ssh/lightsail_instance_ca.pub"
    sudo sh -c "echo >> /etc/ssh/sshd_config" 
    sudo sh -c "echo 'TrustedUserCAKeys /etc/ssh/lightsail_instance_ca.pub' >> /etc/ssh/sshd_config"
    sudo systemctl restart sshd

3.    Se você não receber uma chave ssh-rsa da etapa 1, ou se não conseguir fazer SSH para a instância usando o terminal ou a aplicação PuTTY, crie um instantâneo manual da instância e execute uma nova instância com esse snapshot. A chave do sistema Lightsail é adicionada ao servidor automaticamente na inicialização da instância.

Você atualizou de uma versão mais antiga do Ubuntu para a versão 20.04 ou posterior

Para instâncias que executam o Ubuntu 20.04 ou posterior, você deve permitir que as autoridades de certificação (CAs) usem o algoritmo ssh-rsa para assinar certificados. Caso contrário, a autenticação falhará e você receberá o erro CLIENT_UNAUTHORIZED [769]. As CAs têm permissão para usar o algoritmo ssh-rsa por padrão nas instâncias do Ubuntu 20.04. No entanto, se você atualizar sua versão mais antiga do Ubuntu para a versão 20.04, deverá permitir manualmente as CAs. Para fazer isso, siga estas etapas:

1.    Conecte-se à instância usando um cliente SSH, como o terminal ou a aplicação PuTTY.

2.    Abra o arquivo de configuração SSH (/etc/ssh/sshd_config).

3.    Adicione parâmetros de CA ao arquivo, dependendo da sua versão do Ubuntu:

       Se a versão do sistema operacional for atualizada para Ubuntu 20.04: insira manualmente a linha de parâmetros CASignatureAlgorithms no arquivo sshd_config:

$ sudo vi /etc/ssh/sshd_config
$ cat /etc/ssh/sshd_config | egrep "CASignature"
CASignatureAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa

       Se a versão do sistema operacional for atualizada para Ubuntu 22.04: insira manualmente as linhas de parâmetros CASignatureAlgorithms e PubkeyAcceptedAlgorithms no arquivo sshd_config:

$ sudo vi /etc/ssh/sshd_config
$ cat /etc/ssh/sshd_config | egrep "CASignature|PubkeyAccepted"
CASignatureAlgorithms ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,rsa-sha2-512,rsa-sha2-256,ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa-cert-v01@openssh.com,ssh-rsa

4.    Execute o comando a seguir para validar o conteúdo do arquivo de configuração sshd:

$ sudo sshd -T
  1.    Execute o seguinte comando para reiniciar o serviço sshd:
$ sudo systemctl restart sshd

AWS OFICIAL
AWS OFICIALAtualizada há um ano