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.
Se esta é sua primeira vez criando uma instância, para um tutorial guiado, considere um dos seguintes:
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.
Se esta é sua primeira vez criando uma instância, para um tutorial guiado, considere um dos seguintes:
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
- Veja a seguir um exemplo de comando SSH formatado corretamente para estabelecer conexão com o Oracle Linux.
- 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
.
- Para o Oracle Linux ou outro OSes compatível com a Red Hat, use
- 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.
- Se você não tiver PuTTYgen, faça download dele em https://www.puttygen.com/ e instale-o.
- Abra o PuTTYgen.
- Clique em Arquivo e, em seguida, clique 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 seguida, clique 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 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
.
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.
-
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 Cloud Shell Private Networking.
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:
- Cloud Shell: Consulte a Seção do OCI Cloud Shell nesta página para obter detalhes.
- O serviço Bastion oferece acesso restrito e por 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 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.
- 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
.
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.