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:
- Reative a funcionalidade nos servidores habilitados para Azure Arc.
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 seregistrationState
está definido comoRegistered
- 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
- Exclua a configuração de serviço existente e permita que ela seja recriada pelo comando CLI na próxima conexão. Execute:
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
- Saiba mais sobre o acesso SSH aos servidores habilitados para Azure Arc.
- Saiba mais sobre como solucionar problemas de conexão do agente.