Compartilhar via


Solução de problemas do acesso SSH aos servidores habilitados para Azure Arc

Este artigo fornece informações sobre como solucionar problemas que podem ocorrer ao tentar conectar servidores habilitados para Azure Arc por meio de SSH. Para obter informações gerais, consulte Visão geral de acesso SSH aos servidores habilitados para Arc.

Problemas do lado do cliente

Esses problemas aparecem devido a erros que ocorrem no computador que o usuário está usando para estabelecer a conexão.

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

Esse problema ocorre quando os binários do SSH do lado do cliente necessários para a conexão 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:

  • Forneça o caminho para a pasta que contém os executáveis do cliente SSH usando o parâmetro --ssh-client-folder.
  • Certifique-se de que a pasta está na variável de ambiente PATH do 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 tem suporte na versão instalada de 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 de proxy não é encontrado no computador 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:

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

Esse problema ocorre quando o usuário não tem permissões para executar o proxy SSH 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:

  • Certifique-se de que o usuário tem permissões para executar o arquivo proxy.

Problemas do lado do servidor

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

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

Resolução:

O tráfego SSH não é permitido no servidor

Esse 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:

  • Verifique se o serviço SSHD está sendo executado no servidor habilitado para Arc.
  • Certifique-se de que a funcionalidade está habilitada no 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 no 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:

  • Certifique-se de que você tem uma função Proprietário ou Colaborador no recurso ou entre em contato com o proprietário/colaborador 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 a falta de permissões read. 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 que você tem a função de logon do usuário local da máquina virtual no recurso ao qual está se conectado. Se você estiver usando o logon do Microsoft Entra, certifique-se de que você tem a função de logon do usuário da máquina virtual ou de logon do administrador da máquina virtual e se a extensão de logon SSH do Microsoft Entra está instalada no servidor habilitado para Arc.

O provedor de recursos HybridConnectivity não foi registrado

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

  • Falha na solicitação de informações de Retransmissão do Azure: (NoRegisteredProviderFound) Código: NoRegisteredProviderFound

Resolução:

  • Execute 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 da CLI e o agente Arc

Esse problema ocorre quando o comando atualizado cria uma configuração de serviço antes que o agente Arc seja atualizado. Isso afetará apenas 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 DESCONHECIDA 65535

    Resolução:

    • Exclua a configuração de serviço existente e permita que ela seja recriada pelo comando da 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
      

Desabilitar SSH para servidores habilitados para Arc

Essa funcionalidade pode ser desabilitada concluindo as seguintes ações:

  • Remover 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\"}}'
    
  • Excluir 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óximas etapas