Partilhar via


Resolver problemas de acesso SSH a servidores compatíveis com o Azure Arc

Este artigo fornece informações sobre como solucionar e solucionar problemas que podem ocorrer ao tentar se conectar a servidores habilitados para Azure Arc via SSH. Para obter informações gerais, consulte Visão geral do acesso SSH a servidores habilitados para Arc.

Problemas no Lado do Cliente

Esses problemas são devidos a erros que ocorrem na máquina a partir da qual o usuário está se conectando.

Não é possível localizar os binários do cliente

Esse problema ocorre quando os binários SSH do lado do cliente necessários para se conectar não são encontrados. Possíveis erros:

  • Failed to create ssh key file with error: \<ERROR\>.
  • Failed to run ssh command with error: \<ERROR\>.
  • Failed to get certificate info with error: \<ERROR\>.
  • Failed to create ssh key file with error: [WinError 2] The system cannot find the file specified.
  • Failed to create ssh key file with error: [Errno 2] No such file or directory: 'ssh-keygen'.

Resolução:

  • Indique o caminho para a pasta que contém os executáveis do cliente SSH com o parâmetro --ssh-client-folder.
  • Verifique se a pasta está na variável de ambiente PATH para o Azure PowerShell

Incompatibilidade de versão do módulo do Azure PowerShell

Esse problema ocorre quando o submódulo instalado do Azure PowerShell, Az.Ssh.ArcProxy, não é suportado pela versão instalada do Az.Ssh. Erro:

  • This version of Az.Ssh only supports version 1.x.x of the Az.Ssh.ArcProxy PowerShell Module. The Az.Ssh.ArcProxy module {ModulePath} version is {ModuleVersion}, and it is not supported by this version of the Az.Ssh module. Check that this version of Az.Ssh is the latest available.

Resolução:

  • Atualizar os módulos Az.Ssh e Az.Ssh.ArcProxy

Az.Ssh.ArcProxy não instalado

Esse problema ocorre quando o módulo proxy não é encontrado na máquina cliente. Erro:

  • Failed to find the PowerShell module Az.Ssh.ArcProxy installed in this machine. You must have the Az.Ssh.Proxy PowerShell module installed in the client machine in order to connect to Azure Arc resources. You can find the module in the PowerShell Gallery (see: https://aka.ms/PowerShellGallery-Az.Ssh.ArcProxy).

Resolução:

  • Instale o módulo da Galeria do PowerShell: Install-Module -Name Az.Ssh.ArcProxy

O usuário não tem permissões para executar proxy

Esse problema acontece quando o usuário não tem permissões para executar o proxy SSH que é usado para se conectar. Erros:

  • /bin/bash: line 1: exec: /usr/local/share/powershell/Modules/Az.Ssh.ArcProxy/1.0.0/sshProxy_linux_amd64_1.3.022941: cannot execute: Permission denied
  • CreateProcessW failed error:5 posix_spawnp: Input/output error

Resolução:

  • Verifique se o usuário tem permissões para executar o arquivo proxy.

Problemas do Lado do Servidor

Não é possível conectar-se após a visualização pública

Se o usuário tiver participado da visualização pública e tiver atualizado seu agente Arc e a CLI do Azure/PowerShell para as versões de disponibilidade geral, a conectividade poderá falhar.

Resolução:

Tráfego SSH não permitido no servidor

Este problema ocorre quando o SSHD não está em execução no servidor ou o tráfego SSH não é permitido no servidor. Erro:

  • {"level":"fatal","msg":"sshproxy: error copying information from the connection: read tcp 192.168.1.180:60887-\u003e40.122.115.96:443: wsarecv: An existing connection was forcibly closed by the remote host.","time":"2022-02-24T13:50:40-05:00"}
  • {"level":"fatal","msg":"sshproxy: error connecting to the address: 503 connection to localhost:22 failed: dial tcp [::1]:22: connectex: No connection could be made because the target machine actively refused it.. websocket: bad handshake","proxyVersion":"1.3.022941"}
  • SSH connection is not enabled in the target port {Port}.

Resolução:

  • Confirme que o serviço SSHD está em execução no servidor compatível com o Arc.
  • Verifique se a funcionalidade está habilitada em seu servidor habilitado para Arc na porta 22 (ou outra porta não padrão)
az rest --method put --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15 --body '{\"properties\": {\"serviceName\": \"SSH\", \"port\": \"22\"}}'

Problemas de permissões do Azure

Atribuições de função incorretas para habilitar a conectividade SSH

Esse problema ocorre quando o usuário atual não tem a atribuição de função adequada para fazer contribuições para o recurso de destino. Erro:

  • Client is not authorized to create a Default connectivity endpoint for {Name} in the Resource Group {ResourceGroupName}. This is a one-time operation that must be performed by an account with Owner or Contributor role to allow connections to target resource

Resolução:

  • Verifique se você tem a função de Proprietário ou Colaborador no recurso ou entre em contato com o proprietário/contribuidor do recurso para configurar a conectividade SSH.

Atribuições de função incorretas para conexão

Esse problema ocorre quando o usuário atual não tem a atribuição de função adequada no recurso de destino, especificamente uma falta de read permissões. Possíveis erros:

  • Unable to determine the target machine type as Azure VM or Arc Server
  • Unable to determine that the target machine is an Arc Server
  • Unable to determine that the target machine is an Azure VM
  • Permission denied (publickey).
  • Request for Azure Relay Information Failed: (AuthorizationFailed) The client '\<user name\>' with object id '\<ID\>' does not have authorization to perform action 'Microsoft.HybridConnectivity/endpoints/listCredentials/action' over scope '/subscriptions/\<Subscription ID\>/resourceGroups/\<Resource Group\>/providers/Microsoft.HybridCompute/machines/\<Machine Name\>/providers/Microsoft.HybridConnectivity/endpoints/default' or the scope is invalid. If access was recently granted, please refresh your credentials.

Resolução:

  • Certifique-se de ter a função de Login do usuário Local da Máquina Virtual no recurso ao qual está se conectando. Se estiver usando o login do Microsoft Entra, verifique se você tem as funções Login do Usuário da Máquina Virtual ou Login do Administrador da Máquina Virtual e se a extensão Login SSH do Microsoft Entra está instalada no Servidor Habilitado para Arc.

HybridConnectivity RP não registrado

Esse problema ocorre quando o provedor de recursos HybridConnectivity não está registrado para a assinatura. Erro:

  • Falha no Pedido de Informações do Azure Relay: Código (NoRegisteredProviderFound): NoRegisteredProviderFound

Resolução:

  • Executar az provider register -n Microsoft.HybridConnectivity
  • Confirme o êxito executando az provider show -n Microsoft.HybridConnectivity, verifique se registrationState está definido como Registered
  • Reinicie o agente híbrido no servidor habilitado para Arc

Não é possível conectar-se após atualizar a ferramenta CLI e o agente Arc

Esse problema ocorre quando o comando atualizado cria uma nova configuração de serviço antes que o agente Arc seja atualizado. Isso só afetará as versões do Azure Arc anteriores à 1.31 ao atualizar para uma versão 1.31 ou mais recente. Erro:

  • Conexão fechada pela porta UNKNOWN 65535

    Resolução:

    • Exclua a configuração de serviço existente e permita que ela seja recriada pelo comando CLI na próxima conexão. Execute:
      az rest --method delete --uri https://management.azure.com/subscriptions/<SUB_ID>/resourceGroups/<RG_NAME>/providers/Microsoft.HybridCompute/machines/<VM_NAME>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15
      

Desativar SSH para servidores habilitados para Arc

Esta funcionalidade pode ser desativada ao concluir as seguintes ações:

  • Remova a porta SSH e a funcionalidade do servidor habilitado para Arc:

    az rest --method delete --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15 --body '{\"properties\": {\"serviceName\": \"SSH\", \"port\": \"22\"}}'
    
  • Exclua o ponto de extremidade de conectividade padrão:

    az rest --method delete --uri https://management.azure.com/subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default?api-version=2023-03-15
    

Próximos passos