Etapas detalhadas de solução de problemas SSH para problemas de conexão com uma VM Linux no Azure

Há muitos motivos possíveis pelos quais o cliente SSH pode não conseguir acessar o serviço SSH na VM. Se você seguiu as etapas gerais de solução de problemas de SSH, precisará solucionar mais o problema de conexão. Este artigo orienta você pelas etapas detalhadas de solução de problemas para determinar onde a conexão SSH está falhando e como resolvê-la.

Tome medidas preliminares

O diagrama a seguir mostra os componentes envolvidos.

Diagrama que mostra os componentes do serviço SSH.

As etapas a seguir ajudam a isolar a origem da falha e descobrir soluções ou soluções alternativas.

  1. Verifique o estado da VM no portal. No portal do Azure, selecione máquinas virtuais>nome da VM.

    O painel de status da VM deve mostrar Executando. Role para baixo para mostrar a atividade recente de recursos de computação, armazenamento e rede.

  2. Selecione Configurações para examinar endpoints, endereços IP, grupos de segurança de rede e outras configurações.

    A VM deve ter um endpoint definido para tráfego SSH que você pode visualizar em Endpoints ou Grupo de segurança de rede. Os pontos de extremidade em VMs que foram criados usando o Resource Manager são armazenados em um grupo de segurança de rede. Verifique se as regras foram aplicadas ao grupo de segurança de rede e são referenciadas na sub-rede.

Para verificar a conectividade de rede, verifique os endpoints configurados e veja se você pode se conectar à VM por meio de outro protocolo, como HTTP ou outro serviço.

Após essas etapas, tente a conexão SSH novamente.

Encontre a raiz do problema

O cliente SSH em seu computador pode falhar ao se conectar ao serviço SSH na VM do Azure devido a problemas ou configurações incorretas nas seguintes áreas:

Fonte 1: computador cliente SSH

Para eliminar seu computador como a origem da falha, verifique se ele pode fazer conexões SSH com outro computador local baseado em Linux.

Diagrama que destaca os componentes do computador cliente SSH.

Se a conexão falhar, verifique os seguintes problemas em seu computador:

  • Uma configuração de firewall local que está bloqueando o tráfego SSH de entrada ou saída (TCP 22)
  • Software de proxy de cliente instalado localmente que está impedindo conexões SSH
  • Software de monitoramento de rede instalado localmente que está impedindo conexões SSH
  • Outros tipos de software de segurança que monitoram o tráfego ou permitem/proibim tipos específicos de tráfego

Se uma dessas condições se aplicar, desative temporariamente o software e tente uma conexão SSH com um computador local para descobrir o motivo pelo qual a conexão está sendo bloqueada em seu computador. Em seguida, trabalhe com seu administrador de rede para corrigir as configurações de software para permitir conexões SSH.

Se estiver usando autenticação de certificado, verifique se você tem essas permissões para a pasta .ssh em seu diretório pessoal:

  • Chmod 700 ~/.ssh
  • Chmod 644 ~/.ssh/*.pub
  • Chmod 600 ~/.ssh/id_rsa (ou qualquer outro arquivo que tenha suas chaves privadas armazenadas neles)
  • Chmod 644 ~/.ssh/known_hosts (contém hosts aos quais você se conectou via SSH)

Fonte 2: dispositivo de borda da organização

Para eliminar o dispositivo de borda da organização como a origem da falha, verifique se um computador conectado diretamente à Internet pode fazer conexões SSH com sua VM do Azure. Se você estiver acessando a VM por meio de uma VPN site a site ou uma conexão Azure ExpressRoute, pule para Fonte 4: grupos de segurança de rede.

Diagrama que destaca o dispositivo de borda da organização.

Se você não tiver um computador conectado diretamente à Internet, crie uma nova VM do Azure em seu próprio grupo de recursos ou serviço de nuvem e use essa nova VM. Para obter mais informações, consulte Criar uma máquina virtual executando Linux no Azure. Exclua o grupo de recursos ou a VM e o serviço de nuvem quando terminar o teste.

Se você pode criar uma conexão SSH com um computador conectado diretamente à Internet, verifique se há:

  • Um firewall interno que está bloqueando o tráfego SSH com a Internet
  • Um servidor proxy que está impedindo conexões SSH
  • Detecção de intrusão ou software de monitoramento de rede executado em dispositivos em sua rede de borda que está impedindo conexões SSH

Trabalhe com seu administrador de rede para corrigir as configurações dos dispositivos de borda de sua organização para permitir o tráfego SSH com a Internet.

Fonte 3: endpoint de serviço de nuvem e ACL

Importante

As VMs clássicas serão desativadas em 1º de setembro de 2023

Se você usa recursos de IaaS do ASM, conclua sua migração até 1º de setembro de 2023. Incentivamos você a fazer a troca mais cedo para aproveitar os muitos aprimoramentos de recursos no Azure Resource Manager.

Para obter mais informações, consulte Migrar seus recursos de IaaS para o Azure Resource Manager até 1º de setembro de 2023.

Observação

Essa origem se aplica apenas a VMs que foram criadas usando o modelo de implantação clássico. Para VMs que foram criadas usando o Resource Manager, pule para fonte 4: Grupos de segurança de rede.

Para eliminar o ponto de extremidade do serviço de nuvem e a ACL como origem da falha, verifique se outra VM do Azure na mesma rede virtual pode se conectar usando SSH.

Diagrama que destaca o endpoint de serviço de nuvem e ACL.

Se você não tiver outra VM na mesma rede virtual, poderá criar uma facilmente. Para obter mais informações, consulte Criar uma VM Linux no Azure usando a CLI. Exclua a VM extra quando terminar o teste.

Se você pode criar uma conexão SSH com uma VM na mesma rede virtual, verifique as seguintes áreas:

  • A configuração do endpoint para tráfego SSH na VM de destino. A porta TCP privada do endpoint deve corresponder à porta TCP na qual o serviço SSH na VM está escutando. (A porta padrão é 22). Verifique o número da porta SSH TCP no portal do Azure selecionando Máquinas virtuais>Nome da VM>Configurações>Extremidades.
  • A ACL para o endpoint de tráfego SSH na máquina virtual de destino. Uma ACL permite especificar o tráfego de entrada permitido ou negado da Internet, com base em seu endereço IP de origem. ACLs mal configuradas podem impedir o tráfego SSH de entrada para o endpoint. Verifique suas ACLs para garantir que o tráfego de entrada dos endereços IP públicos de seu proxy ou outro servidor de borda seja permitido. Para obter mais informações, consulte Sobre listas de controle de acesso à rede (ACLs).

Para eliminar o terminal como fonte do problema, remova o terminal atual, crie outro terminal e especifique o nome SSH (porta TCP 22 para o número da porta pública e privada). Para obter mais informações, consulte Configurar endpoints em uma máquina virtual no Azure.

Fonte 4: grupos de segurança de rede

Os grupos de segurança de rede permitem que você tenha um controle mais granular do tráfego de entrada e saída permitido. Você pode criar regras que abrangem sub-redes e serviços de nuvem em uma rede virtual do Azure. Verifique as regras do grupo de segurança de rede para garantir que o tráfego SSH de e para a Internet seja permitido. Para obter mais informações, consulte Sobre grupos de segurança de rede.

Você também pode usar o IP Verify para validar a configuração do NSG. Para obter mais informações, veja Visão geral do monitoramento da rede do Azure.

Fonte 5: máquina virtual do Azure baseada em Linux

A última fonte de possíveis problemas é a própria máquina virtual do Azure.

Diagrama que destaca a máquina virtual do Azure baseada em Linux.

Se ainda não o fez, siga as instruções para redefinir uma senha de máquinas virtuais baseadas em Linux.

Tente se conectar a partir de seu computador novamente. Se ainda falhar, os seguintes são alguns dos possíveis problemas:

  • O serviço SSH não está em execução na máquina virtual de destino.
  • O serviço SSH não está escutando na porta TCP 22. Para testar, instale um cliente telnet em seu computador local e execute "telnet cloudServiceName.cloudapp.net 22". Esta etapa determina se a máquina virtual permite comunicação de entrada e saída para o terminal SSH.
  • O firewall local na máquina virtual de destino tem regras que impedem o tráfego SSH de entrada ou saída.
  • O software de detecção de intrusão ou monitoramento de rede em execução na máquina virtual do Azure está impedindo conexões SSH.

Recursos adicionais

Para obter mais informações sobre como solucionar problemas de acesso a aplicativos, consulte Solucionar problemas de acesso a um aplicativo em execução em uma máquina virtual do Azure.

Entre em contato conosco para obter ajuda

Se você tiver dúvidas ou precisar de ajuda, crie uma solicitação de suporte ou peça ajuda à comunidade de suporte do Azure. Você também pode enviar comentários sobre o produto para a comunidade de comentários do Azure.