Diagnosticando e Solucionando Problemas da Conexão SSH

Se você não conseguir se conectar a uma instância de computação usando SSH, revise as seguintes mensagens de erro de diagnóstico e solução de problemas e sugestões para resolver o problema.

Dica

Se esta for a primeira vez que você cria uma instância, para um tutorial guiado, considere um dos seguintes:
Dica

Se esta for a primeira vez que você cria uma instância, recomendamos primeiro criar uma VCN (Rede Virtual na Nuvem). Você pode usar o workflow "Iniciar Assistente de VCN" e selecionar a opção "Criar VCN com Conectividade de Internet". O workflow cria uma VCN que configura automaticamente uma sub-rede pública e privada junto com quaisquer gateways e regras de roteamento necessários. Além disso, o workflow fornece uma opção para configurar o IPv6. Para obter detalhes sobre como executar o workflow, consulte: Início Rápido de Rede Virtual.

Erro de SSH: conexão com a porta 22 do host w.x.y.z: Tempo limite da operação

O erro significa que o SSH não pode se conectar ao host no endereço IP especificado. Verifique os cenários a seguir para resolver o problema.

Garantir que o sistema tenha acesso à Internet

Verifique se o Ambiente o comando SSH está em execução e se tem Acesso à Internet
  • Windows: Abra uma janela do prompt de comando.
  • MacOS/Linux: Abra uma janela de terminal.
  • Faça um ping em um host conhecido como google.com ou amazon.com.
  • Se o comando ping for bem-sucedido, prossiga para a próxima opção.
Falha no ping

Seu ambiente SSH pode não ter acesso à Internet. Se você não tiver certeza sobre as definições de firewall da sua organização para acesso à internet, considere o uso do OCI Cloud Shell para SSH na instância. Consulte a Seção do OCI Cloud Shell nesta página para obter detalhes.

Servidores Proxy
Se sua organização usa servidores proxy para se conectar à Internet, verifique se as configurações de proxy estão corretas. Consulte a documentação de proxy de sua organização, pois as configurações podem variar dependendo da configuração de proxy e do sistema operacional usado.

Verifique as Definições do OCI

Em seguida, verifique as definições do OCI para verificar sua configuração.

Abrir os Detalhes da Instância
  • Faça log-in na Console do OCI.
  • Abra o menu de navegação e selecione Compute. Em Compute, selecione Instâncias.
  • Selecione a instância na qual você está interessado. A página de detalhes da instância é exibida.
Verifique as seguintes Definições
  • Certifique-se de que a instância esteja em execução e não seja interrompida.
  • Certifique-se de que a instância tenha um endereço IP público.
    • Consulte a seção Acesso à instância. Se um endereço IP público for atribuído, o endereço será rotulado: Endereço IP de acesso público:
    • Se a seção Acesso à Instância estiver vazia, nenhum endereço IP público será designado.
  • Se você tiver um endereço público, certifique-se de estar usando o endereço IP correto no comando SSH.
  • Se você não tiver um endereço IP público, verifique sua sub-rede VCN.
    • Se você estiver em uma sub-rede privada, não poderá se conectar à sua instância pela Internet. Consulte a seção Usando uma Sub-rede Privada.
  • Se você criou uma instância em uma sub-rede pública, mas não designou um endereço IP público na criação da instância, ainda poderá designar o endereço. Consulte: Designando um IP Público Efêmero a um IP Privado Principal Existente.
    • Depois de definir o endereço IP, reinicie a instância e tente usar SSH para estabelecer conexão com sua instância.

A Instância tem um Endereço IP Público em uma Sub-rede Pública e ainda não consigo Estabelecer Conexão

Se você for iniciante no OCI, as seguintes etapas de solução de problemas serão mais avançadas. Para acelerar as coisas, considere configurar uma nova VCN e uma nova instância do serviço Compute, conforme descrito nas dicas a seguir.

Dica

Se esta for a primeira vez que você cria uma instância, para um tutorial guiado, considere um dos seguintes:
Dica

Se esta for a primeira vez que você cria uma instância, recomendamos primeiro criar uma VCN (Rede Virtual na Nuvem). Você pode usar o workflow "Iniciar Assistente de VCN" e selecionar a opção "Criar VCN com Conectividade de Internet". O workflow cria uma VCN que configura automaticamente uma sub-rede pública e privada junto com quaisquer gateways e regras de roteamento necessários. Além disso, o workflow fornece uma opção para configurar o IPv6. Para obter detalhes sobre como executar o workflow, consulte: Início Rápido de Rede Virtual.
Abrir os Detalhes da Instância
  • Faça log-in na Console do OCI.
  • Abra o menu de navegação e selecione Compute. Em Compute, selecione Instâncias.
  • Selecione a instância na qual você está interessado. A página de detalhes da instância é exibida.
Revisar a Configuração da VCN
  • Clique na VCN designada a esta instância.
  • Certifique-se de que pelo menos um Gateway de Internet esteja disponível no recurso Gateways de Internet.
    • Se nenhum Gateway de Internet for designado, vá para a próxima seção.
  • Se um Gateway de Internet for designado, certifique-se de que sua sub-rede pública tenha uma regra de roteamento designada para o gateway.
    • No recurso Sub-redes, selecione sua sub-rede pública.
    • Em Informações da Sub-rede, clique no link Tabela de rotas.
    • Verifique se há uma rota estática com um destino de 0.0.0.0/0.
    • Se a entrada da rota estiver ausente, vá para a próxima seção.
Minha Sub-rede Pública Não Está Configurada Corretamente

Se parecer que a sub-rede pública não está configurada corretamente, você terá duas opções para reconfigurar a sub-rede.

(1) Usar a Ação Rápida de Computação.

Na página de detalhes da instância:

  • Na lista Recursos, selecione Ações Rápidas.
  • Clique em Conectar na ação rápida Conectar sub-rede pública à internet.
  • Siga o workflow para conectar sua instância.

(2) Crie manualmente uma sub-rede pública.

  • Use o documento Cenário A: Uma Sub-rede Pública para percorrer as etapas para configurar e configurar uma nova sub-rede pública.
  • Crie uma nova instância do serviço Compute na nova sub-rede pública.
Verificar Listas de Segurança

Se você continuar tendo problemas, certifique-se de que suas listas de segurança permitam tráfego na porta 22. Consulte Listas de Segurança para obter detalhes.

Solução Avançada de Problemas

Se você for um usuário avançado, poderá usar o Network Path Analyzer para solucionar mais problemas da conexão de rede. Consulte Analisador de Caminho de Rede para obter detalhes.

SSH: Conexão com a porta 22 do host w.x.y.z: Conexão recusada

Esta mensagem de erro é causada porque um host está fazendo listening no endereço de destino, mas você não pode estabelecer conexão com a porta 22.

Usar Netcat(nc) para verificar se o SSH está em Execução

Linux ou MacOS

Em uma janela de terminal, execute o seguinte comando:

nc <public ip> 22
  • Se o comando retornar uma mensagem semelhante a: SSH-2.0-OpenSSH_9.4

    Você se conectou com sucesso à instância e o SSH verificado está em execução. Verifique novamente o endereço IP no comando SSH, verifique se ele está correto.

  • Se o comando não retornar nada:

    • Verifique o endereço IP público na página de detalhes da instância para garantir que você esteja usando o endereço correto.
    • Verifique novamente o endereço IP usado no comando, verifique se ele está correto.

    Caso contrário, avance para a próxima seção.

Janelas

Em uma janela PowerShell, execute o seguinte comando:

tnc <public ip> -p 22
  • Se o comando retornar uma mensagem semelhante a:

    ComputerName     : <public ip>
                                    RemoteAddress    : <public ip>
                                    RemotePort       : 22
                                    InterfaceAlias   : Ethernet
                                    SourceAddress    : <source ip>
                                    TcpTestSucceeded : True

    Você se conectou com sucesso à instância e o SSH verificado está em execução. Verifique novamente o endereço IP no comando SSH, verifique se ele está correto.

  • Se o comando retornar: WARNING: TCP connect to (<public ip>) failed
    • Verifique o endereço IP público na página de detalhes da instância para garantir que você esteja usando o endereço correto.
    • Verifique novamente o endereço IP usado no comando, verifique se ele está correto.

    Caso contrário, continue solucionando problemas com a próxima seção.

O SSH não está em Execução

  • Verifique se a instância está em uma sub-rede pública.
    • Se a instância estiver em uma sub-rede privada, você não poderá estabelecer conexão com a instância diretamente. Consulte a seção Usando uma Sub-rede Privada.
  • Certifique-se de que as listas de segurança estejam configuradas para permitir conexões à porta 22. Consulte Listas de Segurança para obter detalhes.
  • Reinicialize a instância para reiniciar o daemon SSH.
  • Avançado: Se você estiver usando uma imagem personalizada e precisar iniciar ou instalar o serviço SSH, use a Console Serial para estabelecer conexão com a instância.

<user-name>@w.x.y.z: Permissão negada (publickey,gssapi-keyex,gssapi-with-mic)

Essa mensagem de erro indica que o SSH está se conectando ao host de serviço SSH, mas há um problema com o comando SSH.

Verifique os seguintes Problemas com o Comando SSH

  • Verifique duas vezes todas as opções de linha de comando para SSH. Qualquer opção incorreta pode causar esta mensagem de erro.
    • Veja a seguir um exemplo de comando SSH formatado corretamente para estabelecer conexão com o Oracle Linux.
      ssh -i <my-private-key-file> opc@x.x.x.x
  • Certifique-se de usar o nome de usuário correto para a instância:
    • Para Oracle Linux ou outro OSes compatível com Red Hat, use opc.
    • Para Ubuntu Linux, use ubuntu.
  • Certifique-se de estar usando a chave privada correta. O uso do arquivo de chave privada errado resultará nessa mensagem de erro.
    • Verifique se você está no diretório que contém a chave.
    • Como alternativa, verifique se o caminho para a chave privada está correto.
  • Perdi minha chave privada.
    • Crie uma nova instância e faça download das novas chaves públicas e privadas.
    • Crie um novo conjunto de chaves pública e privada. Crie uma nova instância.

Login SSH Negado Usando Arquivos de Chaves PuTTYgen: "Permissão negada (publickey,gssapi-keyex,gssapi-with-mic)"

Isso ocorre porque as instâncias do Linux suportam chaves SSH geradas OpenSSH e as chaves SSH geradas PuTTYgen usam outro formato.

Fazer Correspondência de Formatos de Chave SSH

Se você estiver usando chaves .ppk geradas com PuTTYgen para fazer log-in em uma instância do Linux usando o comando SSH OpenSSH, a conexão falhará. Por exemplo:

$ ssh -i deployment_key.txt opc@<IP_ADDRESS>
Enter passphrase for key 'deployment_key.txt':
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

Este erro ocorre porque as instâncias do Linux suportam chaves SSH geradas OpenSSH e as chaves SSH geradas PuTTYgen usam um formato diferente. Para resolver esse problema, use PuTTYgen para converter as chaves para o formato de chave OpenSSH. Em seguida, as chaves podem ser usadas com o comando SSH para fazer log-in em uma instância do Linux.

  1. Se você não tiver o PuTTYgen, faça download dele em https://www.puttygen.com/ e instale-o.
  2. Abra o PuTTYgen.
  3. Clique em Arquivo e em Carregar chave privada.
  4. Navegue até o arquivo de chave privada PuTTY (.ppk) e clique em Abrir.
  5. (Opcional) Informe uma frase-senha de chave.
  6. Clique em Conversões e em Exportar chave OpenSSH.

    Se você não usou como frase-senha, clique em Sim na PuTTYgen Advertência para continuar.

  7. Na janela Salvar chave privada como:, informe um nome de arquivo para a chave convertida e clique em Salvar.

Agora você pode usar a chave convertida para fazer log-in na sua instância do Linux.

SSH Falha com Erro: "Autenticação Recusada: Propriedade Incorreta ou Modos para Diretório"

Este erro ocorre porque permissões incorretas estão definidas no diretório /home/<USERNAME> ou no arquivo .ssh/authorized_keys.

Observação

Os exemplos de caminhos de diretório home nesta dica de diagnóstico e solução de problemas usam o Oracle Linux. O caminho do home pode ser diferente com base no sistema operacional. Por exemplo, o caminho do home em MacOS é /Users/<USERNAME>.

Definir Permissões Corretas

Se você tiver permissões incorretas definidas no diretório /home/<USERNAME> ou no arquivo .ssh/authorized_keys, a conexão com uma instância do Linux usando SSH poderá falhar.

Por exemplo:

login as: <username>
Server refused our key

Se você revisar os arquivos de log /var/log/secure na instância do Linux, verá o motivo do erro:

<SERVER> sshd[6245]: Authentication refused: bad ownership or modes for directory /home/<USERNAME>

Para corrigir o erro, defina as permissões no diretório home ou no arquivo .ssh/authorized_keys, use o comando chmod:

# chmod 700 /home/<username>
# chmod 700 /home/<username>/.ssh/
# chmod 600 /home/username/.ssh/authorized_keys

Usando o Cloud Shell para se conectar a uma Instância do OCI

O OCI Cloud Shell é um terminal baseado em web browser acessível na Console do OCI. O Cloud Shell é gratuito (dentro de limites mensais de tenancy) e oferece acesso a um shell do Linux, com uma CLI do OCI pré-autenticada, uma instalação pré-autenticada do Ansible e outras ferramentas úteis.

Se você estiver tendo problemas de conectividade com sua instância, o Cloud Shell será uma opção eficaz para estabelecer conexão com SSH. Como o Cloud Shell é baseado em navegador, ele elimina possíveis problemas de conectividade devido a configurações de laptop ou firewall corporativo. Esta seção vincula você às informações sobre como usar o Cloud Shell.

Usando uma Sub-rede Privada

Se sua instância do serviço Compute estiver em uma sub-rede privada, geralmente haverá dois cenários.

(1) A Instância está em uma Sub-rede Privada, mas deve estar em uma Sub-rede Pública

Para ter a instância em uma sub-rede pública, você tem as opções a seguir.

  • Crie uma nova instância em uma sub-rede pública na VCN atual. Encerre a instância antiga.
  • Crie uma nova sub-rede pública na VCN atual. Crie uma nova instância na nova sub-rede pública. Encerre a instância antiga.
  • Crie uma nova VCN com uma sub-rede pública e, em seguida, crie uma nova instância na sub-rede pública. Encerre a instância antiga.
Dica

Se esta for a primeira vez que você cria uma instância, para um tutorial guiado, considere um dos seguintes:
Dica

Se esta for a primeira vez que você cria uma instância, recomendamos primeiro criar uma VCN (Rede Virtual na Nuvem). Você pode usar o workflow "Iniciar Assistente de VCN" e selecionar a opção "Criar VCN com Conectividade de Internet". O workflow cria uma VCN que configura automaticamente uma sub-rede pública e privada junto com quaisquer gateways e regras de roteamento necessários. Além disso, o workflow fornece uma opção para configurar o IPv6. Para obter detalhes sobre como executar o workflow, consulte: Início Rápido de Rede Virtual.
(2) A Instância está intencionalmente em uma Sub-rede Privada

Quando a instância do serviço Compute estiver em uma sub-rede privada, você poderá estabelecer conexão com ela usando:

Opções Adicionais de Conexão e Solução de Problemas de Instância

O foco desta página é usar o comando SSH para estabelecer conexão com uma instância. Veja outras ferramentas disponíveis para diagnosticar e solucionar problemas de instâncias do serviço Compute.

Solucionando Problemas com a Console Serial

Usando uma conexão da console do OCI, você pode usar a console serial da instância para estabelecer conexão com a instância. Isso permite que você diagnostique e configure remotamente uma instância. Para obter mais informações, consulte Diagnosticando e Solucionando Problemas de Instâncias Usando a Conexão da Console da Instância.

No console serial, você pode executar as seguintes tarefas administrativas:

Observe a Integridade da Instância

Na página de detalhes da instância, você pode observar métricas relacionadas à instância, incluindo a integridade da instância. A métrica oci_compute_instance_health permite monitorar se uma instância de VM não responde. O serviço Compute envia uma solicitação de ARP (Address Resolution Protocol) à VNIC (Virtual Network Interface Card) da instância. Se o ping ARP falhar, a métrica mostrará que a instância não responde.

Para usar a métrica, selecione oci_compute_instance_health no controle Namespace de métricas na página de detalhes. Para obter mais informações, consulte: Métricas de Integridade da Instância de Computação.

Outras Seções de Solução de Problemas do Serviço Compute

Além do SSH, os seguintes tópicos de solução de problemas também estão disponíveis.