Diagnosticando e Solucionando Problemas da Conexão SSH

Se você não conseguir estabelecer conexão com uma instância de computação usando SSH, revise as mensagens de erro e sugestões de solução de problemas a seguir para resolver o problema.

Dica

Se esta é sua primeira vez criando 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 criar uma VCN (Rede Virtual na Nuvem) primeiro. 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 IPv6. Para obter detalhes sobre a execução do workflow, consulte: Início Rápido da Rede Virtual.

Erro SSH: conexão com o host w.x.y.z porta 22: Timeout da operação

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

Garantir que o sistema tenha acesso à Internet

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

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 usar o 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, certifique-se de que suas configurações de proxy estejam corretas. Consulte a documentação do proxy de suas organizações, pois as configurações podem variar dependendo da configuração do 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 login na Console do OCI.
  • Abra o menu de navegação e selecione Computação. Em Compute, selecione Instâncias.
  • Selecione a instância em que você está interessado. A página de detalhes da instância é exibida.
Verifique as seguintes configuraçõ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.
    • Verifique a seção Acesso à instância. Se um endereço IP público for designado, o endereço será identificado como 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á estabelecer conexão com 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.
    • Após 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 eu ainda não consigo Estabelecer Conexão

Se você for iniciante no OCI, as etapas de solução de problemas a seguir 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 é sua primeira vez criando 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 criar uma VCN (Rede Virtual na Nuvem) primeiro. 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 IPv6. Para obter detalhes sobre a execução do workflow, consulte: Início Rápido da Rede Virtual.
Abrir os Detalhes da Instância
  • Faça login na Console do OCI.
  • Abra o menu de navegação e selecione Computação. Em Compute, selecione Instâncias.
  • Selecione a instância em que 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 roteamento.
    • Certifique-se de que haja 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 aparecer que sua sub-rede pública não está configurada corretamente, você terá duas opções para reconfigurar sua sub-rede.

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

Na página 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 com a 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 de configuração e configuração de 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 a ter problemas, certifique-se de que suas listas de segurança permitam tráfego na porta 22. Consulte Listas de Segurança para obter detalhes.

Diagnóstico e Solução de Problemas Avançados

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

SSH: Conecte-se ao host w.x.y.z porta 22: 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 o endereço IP no comando SSH, certifique-se de que ele esteja 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 o endereço IP usado no comando e certifique-se de que esteja correto.

    Caso contrário, vá 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 o endereço IP no comando SSH, certifique-se de que ele esteja 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 o endereço IP usado no comando e certifique-se de que esteja correto.

    Caso contrário, continue a solução de problemas na 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 com a 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)

Esta 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 problemas a seguir com o comando SSH

  • Verifique novamente 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 estar usando o nome de usuário correto para a instância:
    • Para o Oracle Linux ou outro OSes compatível com a Red Hat, use opc.
    • Para Ubuntu Linux, use ubuntu.
  • Certifique-se de usar a chave privada correta. O uso do arquivo de chave privada errado resultará nesta 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ública e privada.
    • Faça um novo conjunto de chaves pública e privada. Crie uma nova instância.

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

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

Tornar os Formatos de Chave SSH Correspondentes

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

Esse 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 no 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 PuTTYgen, faça download dele em https://www.puttygen.com/ e instale-o.
  2. Abra o PuTTYgen.
  3. Clique em Arquivo e, em seguida, clique 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 seguida, clique 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 instância do Linux.

O SSH falha com o erro: "Autenticação recusada: propriedade ou modos incorretos para o 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 caminhos do diretório home de exemplo nesta dica de diagnóstico e solução de problemas usam o Oracle Linux. O caminho inicial 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 estabelecer conexão com uma Instância do OCI

O OCI Cloud Shell é um terminal baseado em navegador da Web acessível na Console do OCI. O Cloud Shell é gratuito para uso (nos limites mensais da tenancy) e fornece acesso a um shell Linux, com uma CLI do OCI pré-autenticada, uma instalação do Ansible pré-autenticada 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 o SSH. Como o Cloud Shell é baseado em navegador, elimina possíveis problemas de conectividade devido a configurações de firewall corporativo ou de laptop. Esta seção o vincula às informações sobre como você pode 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 é sua primeira vez criando 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 criar uma VCN (Rede Virtual na Nuvem) primeiro. 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 IPv6. Para obter detalhes sobre a execução do workflow, consulte: Início Rápido da Rede Virtual.
(2) A Instância está intencionalmente em uma Sub-rede Privada

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

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

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

Solução de 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ê solucione problemas remotamente e configure uma instância. Para obter mais informações, consulte Diagnosticando e Solucionando Problemas de Instâncias Usando Conexões da Console de Instâncias.

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

Observar 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 ARP (Address Resolution Protocol) para a VNIC (placa de interface de rede virtual) 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 de Namespace de métricas na página de detalhes. Para obter mais informações, consulte: Métricas de Saúde da Instância do Serviço Compute.

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

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