Resolver problemas de acesso SSH a servidores compatíveis com o Azure Arc
Artigo
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
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.
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\"}}'
Invoke-AzRestMethod -Method put -Path /subscriptions/<subscription>/resourceGroups/<resourcegroup>/providers/Microsoft.HybridCompute/machines/<arc enabled server name>/providers/Microsoft.HybridConnectivity/endpoints/default/serviceconfigurations/SSH?api-version=2023-03-15 -Payload '{"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
Remova a porta SSH e a funcionalidade do servidor habilitado para Arc:
Este módulo aborda o tópico de habilitação do Azure Arc para máquinas Windows ou Linux em seu ambiente. A habilitação de servidores habilitados para Arc é feita manualmente ou usando um método automatizado com um script de modelo fornecido.
Como administrador híbrido do Windows Server, você integra ambientes do Windows Server aos serviços do Azure e gerencia o Windows Server em redes locais.