Etapas detalhadas de solução de problemas de SSH para problemas ao se conectar a uma VM do Linux no AzureDetailed SSH troubleshooting steps for issues connecting to a Linux VM in Azure

Há muitas razões possíveis para que o cliente de SSH não possa acessar o serviço SSH na VM.There are many possible reasons that the SSH client might not be able to reach the SSH service on the VM. Se tiver seguido as etapas gerais de solução de problemas de SSH, será necessário solucionar o problema de conexão.If you have followed through the more general SSH troubleshooting steps, you need to further troubleshoot the connection issue. Este artigo guiará você pelas etapas detalhadas de solução de problemas para determinar onde a conexão SSH está falhando e como resolver isso.This article guides you through detailed troubleshooting steps to determine where the SSH connection is failing and how to resolve it.

Realizar etapas preliminaresTake preliminary steps

O diagrama a seguir mostra os componentes que estão envolvidos.The following diagram shows the components that are involved.

Diagrama que mostra os componentes de serviço SSH

As etapas a seguir ajudarão você a isolar a origem da falha e encontrar soluções ou soluções alternativas.The following steps help you isolate the source of the failure and figure out solutions or workarounds.

  1. Verifique o status da VM no portal.Check the status of the VM in the portal. No Portal do Azure, selecione Máquinas virtuais > Nome da VM.In the Azure portal, select Virtual machines > VM name.

    O painel de status da VM deve mostrar Executando.The status pane for the VM should show Running. Role para baixo para mostrar a atividade recente dos recursos de computação, armazenamento e rede.Scroll down to show recent activity for compute, storage, and network resources.

  2. Selecione Configurações para examinar os pontos de extremidade, os endereços IP, os grupos de segurança de rede e outras configurações.Select Settings to examine endpoints, IP addresses, network security groups, and other settings.

    A VM deve ter um ponto de extremidade definido para o tráfego SSH que você pode exibir nos Pontos de extremidade ou no Grupo de segurança de rede.The VM should have an endpoint defined for SSH traffic that you can view in Endpoints or Network security group. Os pontos de extremidade nas VMs que foram criados usando o Resource Manager são armazenados em um grupo de segurança de rede.Endpoints in VMs that were created by using Resource Manager are stored in a network security group. Verifique se as regras foram aplicadas ao grupo de segurança de rede e se são referenciadas na sub-rede.Verify that the rules have been applied to the network security group and are referenced in the subnet.

Para verificar a conectividade de rede, verifique os pontos de extremidade configurados e se você pode se conectar à VM por meio de outro protocolo, como HTTP ou outro serviço.To verify network connectivity, check the configured endpoints and see if you can connect to the VM through another protocol, such as HTTP or another service.

Após essas etapas, tente estabelecer novamente a conexão SSH.After these steps, try the SSH connection again.

Descobrir a origem do problemaFind the source of the issue

O cliente SSH no computador poderá não conseguir se conectar ao serviço SSH na VM do Azure devido aos problemas ou às configurações incorretas nas seguintes áreas:The SSH client on your computer might fail to connect to the SSH service on the Azure VM due to issues or misconfigurations in the following areas:

Fonte 1: computador cliente de SSHSource 1: SSH client computer

Para que o seu computador deixe de ser a fonte da falha, verifique se ele pode estabelecer conexões SSH com outro computador local baseado em Linux.To eliminate your computer as the source of the failure, verify that it can make SSH connections to another on-premises, Linux-based computer.

Diagrama que realça os componentes do computador cliente SSH

Se a conexão falhar, verifique se os seguintes problemas ocorreram em seu computador:If the connection fails, check for the following issues on your computer:

  • Uma configuração de firewall local que está bloqueando o tráfego SSH de entrada ou de saída (TCP 22)A local firewall setting that is blocking inbound or outbound SSH traffic (TCP 22)
  • Um software de proxy cliente instalado localmente que está impedindo conexões de SSHLocally installed client proxy software that is preventing SSH connections
  • Um software de monitoramento de rede instalado localmente que está impedindo conexões SSHLocally installed network monitoring software that is preventing SSH connections
  • Outros tipos de software de segurança que monitoram o tráfego ou que permitem/não permitem tipos específicos de tráfegoOther types of security software that either monitor traffic or allow/disallow specific types of traffic

Se uma das seguintes condições se aplicar, desabilite temporariamente o software e tente novamente uma conexão SSH em um computador local para descobrir o motivo pelo qual a conexão está sendo bloqueada no seu computador.If one of these conditions apply, temporarily disable the software and try an SSH connection to an on-premises computer to find out the reason the connection is being blocked on your computer. Em seguida, trabalhe com o administrador de rede para corrigir as configurações do software e permitir as conexões SSH.Then work with your network administrator to correct the software settings to allow SSH connections.

Se você estiver usando autenticação de certificado, verifique se tem essas permissões para a pasta .ssh em seu diretório base:If you are using certificate authentication, verify that you have these permissions to the .ssh folder in your home directory:

  • Chmod 700 ~/.sshChmod 700 ~/.ssh
  • Chmod 644 ~/.ssh/*.pubChmod 644 ~/.ssh/*.pub
  • Chmod 600 ~/.ssh/id_rsa (ou quaisquer outros arquivos que têm suas chaves privadas armazenadas)Chmod 600 ~/.ssh/id_rsa (or any other files that have your private keys stored in them)
  • Chmod 644 ~/.ssh/known_hosts (contém os hosts aos quais você se conectou via SSH)Chmod 644 ~/.ssh/known_hosts (contains hosts that you’ve connected to via SSH)

Fonte 2: dispositivo de borda da organizaçãoSource 2: Organization edge device

Para que o dispositivo de borda de sua organização deixe de ser a fonte da falha, verifique se um computador conectado diretamente à Internet pode estabelecer conexões SSH a sua VM do Azure.To eliminate your organization edge device as the source of the failure, verify that a computer directly connected to the Internet can make SSH connections to your Azure VM. Se você estiver acessando a VM por uma VPN site a site ou por uma conexão ExpressRoute do Azure, vá para Fonte 4: Grupos de segurança de rede.If you are accessing the VM over a site-to-site VPN or an Azure ExpressRoute connection, skip to Source 4: Network security groups.

Diagrama que realça o dispositivo de borda da organização

Se não tiver um computador que esteja diretamente conectado à Internet, crie uma nova VM do Azure em seu próprio grupo de recursos ou serviço de nuvem e use essa nova VM.If you don't have a computer that is directly connected to the Internet, create a new Azure VM in its own resource group or cloud service and use that new VM. Para saber mais, consulte Criar uma máquina virtual que execute o Linux no Azure.For more information, see Create a virtual machine running Linux in Azure. Exclua o grupo de recursos ou a VM e o serviço de nuvem ao concluir o teste.Delete the resource group or VM and cloud service when you're done with your testing.

Se você puder criar uma conexão SSH com um computador conectado diretamente à Internet, verifique se há o seguinte no dispositivo de borda da organização:If you can create an SSH connection with a computer that's directly connected to the Internet, check your organization edge device for:

  • Um firewall interno que está bloqueando o tráfego SSH com a InternetAn internal firewall that's blocking SSH traffic with the Internet
  • Um servidor proxy que está impedindo conexões SSHA proxy server that's preventing SSH connections
  • Software de detecção de invasão ou de monitoramento de rede em execução em dispositivos em sua rede de borda que está impedindo conexões SSHIntrusion detection or network monitoring software running on devices in your edge network that's preventing SSH connections

Trabalhe com o administrador da rede para corrigir as configurações dos dispositivos de borda de sua organização a fim de permitir o tráfego SSH com a Internet.Work with your network administrator to correct the settings of your organization edge devices to allow SSH traffic with the Internet.

Fonte 3: ponto de extremidade de serviço de nuvem e ACLSource 3: Cloud service endpoint and ACL

Importante

As VMs clássicas serão desativadas em 1º de março de 2023.Classic VMs will be retired on March 1, 2023.

Se você usa os recursos de IaaS do ASM, realize a migração até 1º de março de 2023.If you use IaaS resources from ASM, please complete your migration by March 1, 2023. Recomendamos que faça a migração o quanto antes para aproveitar as inúmeras melhorias feitas no Azure Resource Manager.We encourage you to make the switch sooner to take advantage of the many feature enhancements in Azure Resource Manager.

Para mais informações, confira Migrar os recursos de IaaS para o Azure Resource Manager até 1º de março de 2023.For more information, see Migrate your IaaS resources to Azure Resource Manager by March 1, 2023.

Observação

Essa fonte aplica-se somente às VMs que foram criadas usando o modelo de implantação clássico.This source applies only to VMs that were created by using the classic deployment model. Para as VMs criadas com o Resource Manager, vá para fonte 4: Grupos de segurança de rede.For VMs that were created by using Resource Manager, skip to source 4: Network security groups.

Para que o ponto de extremidade de serviço de nuvem e uma ACL deixem de ser a fonte da falha, verifique se outra VM do Azure na mesma rede virtual pode se conectar usando SSH.To eliminate the cloud service endpoint and ACL as the source of the failure, verify that another Azure VM in the same virtual network can connect using SSH.

Diagrama que realça a ACL e o ponto de extremidade do serviço de nuvem

Se não houver outra VM na mesma rede virtual, você poderá criar facilmente uma nova.If you don't have another VM in the same virtual network, you can easily create one. Para saber mais, veja Criar uma VM do Linux no Azure usando a CLI.For more information, see Create a Linux VM on Azure using the CLI. Exclua a VM extra ao concluir o teste.Delete the extra VM when you are done with your testing.

Se for possível criar uma conexão SSH com uma VM na mesma rede virtual, verifique as seguintes áreas:If you can create an SSH connection with a VM in the same virtual network, check the following areas:

  • A configuração do ponto de extremidade para o tráfego SSH na VM de destino.The endpoint configuration for SSH traffic on the target VM. A porta TCP particular do ponto de extremidade deve corresponder à porta TCP na qual o serviço SSH na VM está escutando.The private TCP port of the endpoint should match the TCP port on which the SSH service on the VM is listening. (A porta padrão é 22).(The default port is 22). Verifique o número da porta SSH TCP no portal do Azure selecionando máquinas virtuais > nome da VM > configurações > pontos de extremidade.Verify the SSH TCP port number in the Azure portal by selecting Virtual machines > VM name > Settings > Endpoints.
  • A ACL para o ponto de extremidade de tráfego de SSH na máquina virtual de destino.The ACL for the SSH traffic endpoint on the target virtual machine. Uma ACL permite que você especifique tráfego de entrada permitido ou negado da Internet com base em seu endereço IP de origem.An ACL enables you to specify allowed or denied incoming traffic from the Internet, based on its source IP address. ACLs configuradas incorretamente podem impedir o tráfego de SSH para o ponto de extremidade.Misconfigured ACLs can prevent incoming SSH traffic to the endpoint. Verifique suas ACLs para assegurar que o tráfego de entrada dos endereços IP públicos de seu proxy ou de outro servidor de borda é permitido.Check your ACLs to ensure that incoming traffic from the public IP addresses of your proxy or other edge server is allowed. Para obter mais informações, veja Sobre ACLs (listas de controle de acesso) de rede.For more information, see About network access control lists (ACLs).

Para que o ponto de extremidade deixe de ser a fonte do problema, remova o ponto de extremidade atual, crie um novo e especifique o nome do SSH (porta TCP 22 como o número da porta pública e privada).To eliminate the endpoint as a source of the problem, remove the current endpoint, create another endpoint, and specify the SSH name (TCP port 22 for the public and private port number). Para obter mais informações, consulte Configurar pontos de extremidade em uma máquina virtual no Azure.For more information, see Set up endpoints on a virtual machine in Azure.

Fonte 4: Grupos de segurança de redeSource 4: Network security groups

Os grupos de segurança de rede proporcionam um controle mais granular do tráfego de entrada e de saída permitido.Network security groups enable you to have more granular control of allowed inbound and outbound traffic. Você pode criar regras que abrangem sub-redes e serviços de nuvem em uma rede virtual do Azure.You can create rules that span subnets and cloud services in an Azure virtual network. Examine as regras do grupo de segurança de rede para verificar se o tráfego SSH de entrada e saída da Internet é permitido.Check your network security group rules to ensure that SSH traffic to and from the Internet is allowed. Para saber mais, confira Sobre grupos de segurança de rede.For more information, see About network security groups.

Você também pode usar a Verificação de IP para validar a configuração do NSG.You can also use IP Verify to validate the NSG configuration. Para saber mais, veja Visão geral do monitoramento de rede do Azure.For more information, see Azure network monitoring overview.

Fonte 5: máquina virtual do Azure baseada no LinuxSource 5: Linux-based Azure virtual machine

A última fonte possível de problemas é a própria máquina virtual do Azure.The last source of possible problems is the Azure virtual machine itself.

Diagrama que realça uma VM do Azure baseada em Linux

Se você ainda não fez isso, siga as instruções para redefinir uma senha para máquinas virtuais baseadas em Linux.If you haven't done so already, follow the instructions to reset a password Linux-based virtual machines.

Tente se conectar novamente do seu computador.Try connecting from your computer again. Caso ainda não consiga, veja a seguir alguns dos possíveis problemas:If it still fails, the following are some of the possible issues:

  • O serviço SSH não está em execução na máquina virtual de destino.The SSH service is not running on the target virtual machine.
  • O serviço SSH não está escutando na porta TCP 22.The SSH service is not listening on TCP port 22. Para testar, instale um cliente telnet no computador local e execute "telnet cloudServiceName.cloudapp.net 22".To test, install a telnet client on your local computer and run "telnet cloudServiceName.cloudapp.net 22". Essa etapa determina se a máquina virtual permite a comunicação de entrada e de saída para o ponto de extremidade do SSH.This step determines if the virtual machine allows inbound and outbound communication to the SSH endpoint.
  • O firewall local na máquina virtual de destino tem regras que estão impedindo o tráfego SSH de entrada ou de saída.The local firewall on the target virtual machine has rules that are preventing inbound or outbound SSH traffic.
  • Um software de detecção de invasão ou de monitoramento de rede em execução na máquina virtual do Azure está impedindo conexões de SSH.Intrusion detection or network monitoring software that's running on the Azure virtual machine is preventing SSH connections.

Recursos adicionaisAdditional resources

Para obter mais informações sobre como solucionar problemas de acesso do aplicativo, consulte Solucionar problemas de acesso a um aplicativo executado em uma máquina virtual do AzureFor more information about troubleshooting application access, see Troubleshoot access to an application running on an Azure virtual machine