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:
- Instale o módulo na Galeria do PowerShell:
Install-Module -Name Az.Ssh.ArcProxy
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:
- Habilite novamente a funcionalidade nos servidores habilitados para Azure Arc.
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 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 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
- Exclua a configuração de serviço existente e permita que ela seja recriada pelo comando da CLI na próxima conexão. Execute:
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
- Saiba mais sobre o acesso SSH aos servidores habilitados para Azure Arc.
- Saiba mais sobre como solucionar problemas de conexão do agente.