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.
Se esta for a primeira vez que você cria uma instância, para um tutorial guiado, considere um dos seguintes:
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.
Se esta for a primeira vez que você cria uma instância, para um tutorial guiado, considere um dos seguintes:
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.4Você 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 : TrueVocê 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
- Veja a seguir um exemplo de comando SSH formatado corretamente para estabelecer conexão com o Oracle Linux.
- 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.
- Para Oracle Linux ou outro OSes compatível com Red Hat, use
- 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.
- Se você não tiver o PuTTYgen, faça download dele em https://www.puttygen.com/ e instale-o.
- Abra o PuTTYgen.
- Clique em Arquivo e em Carregar chave privada.
- Navegue até o arquivo de chave privada PuTTY (.ppk) e clique em Abrir.
- (Opcional) Informe uma frase-senha de chave.
- 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.
- 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.
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.
-
Para obter informações sobre o Cloud Shell, consulte Cloud Shell.
-
Para obter informações sobre como acessar o Cloud Shell, consulte Usando o Cloud Shell.
- Para obter informações sobre como conectar uma sessão do Cloud Shell a uma rede privada, consulte Rede Privada do 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:
- Cloud Shell: Consulte a Seção do OCI Cloud Shell nesta página para obter detalhes.
- O Bastion fornece acesso restrito e com tempo limitado a recursos de destino que não têm pontos finais públicos. Consulte a Visão Geral do Serviço Bastion para obter mais detalhes.
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.
- Interrompa o processo de inicialização para inicializar no modo de manutenção.
- No modo de manutenção, adicione ou redefina a chave SSH do usuário
opc.
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.