Résoudre les problèmes d’accès SSH aux serveurs avec Azure Arc
Cet article fournit des informations sur le dépannage et la résolution des problèmes pouvant survenir lors de la tentative de connexion aux serveurs compatibles Azure Arc via SSH. Pour obtenir des informations générales, consultez Présentation de l'accès SSH aux serveurs compatibles Arc.
Problèmes côté client
Ces problèmes sont dus à des erreurs qui se produisent sur la machine à partir de laquelle l’utilisateur se connecte.
Impossible de localiser les fichiers binaires du client
Ce problème se produit lorsque les binaires SSH côté client requis pour la connexion sont introuvables. Erreurs possibles :
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'.
Résolution :
- Indiquez le chemin du dossier qui contient les exécutables du client SSH en utilisant le paramètre
--ssh-client-folder
. - Assurez-vous que le dossier se trouve dans la variable d'environnement PATH pour Azure PowerShell
Incompatibilité de version du module Azure PowerShell
Ce problème se produit lorsque le sous-module Azure PowerShell installé, Az.Ssh.ArcProxy, n’est pas pris en charge par la version installée d’Az.Ssh. Erreur :
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.
Résolution :
- Mettre à jour les modules Az.Ssh et Az.Ssh.ArcProxy
Az.Ssh.ArcProxy n’est pas installé
Ce problème se produit lorsque le module proxy est introuvable sur la machine client. Erreur :
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).
Résolution :
- Installez le module depuis la PowerShell Gallery :
Install-Module -Name Az.Ssh.ArcProxy
L’utilisateur n’a pas les autorisations nécessaires pour exécuter le proxy
Ce problème se produit lorsque l’utilisateur n’a pas les autorisations nécessaires pour exécuter le proxy SSH utilisé pour se connecter. Erreurs :
/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
Résolution :
- Vérifiez que l’utilisateur dispose des autorisations nécessaires pour exécuter le fichier proxy.
Problèmes côté serveur
Impossible de se connecter après la préversion publique
Si l’utilisateur a participé à la préversion publique et a mis à jour son agent Arc et Azure CLI/PowerShell vers les versions de disponibilité générale, la connectivité peut échouer.
Résolution :
- Réactivez la fonctionnalité sur les serveurs compatibles Azure Arc.
Trafic SSH non autorisé sur le serveur
Ce problème se produit quand SSHD n’est pas exécuté sur le serveur ou que le trafic SSH n’est pas autorisé sur le serveur. Erreur :
{"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}.
Résolution :
- Vérifiez que le service SSHD s’exécute sur le serveur avec Arc.
- Assurez-vous que la fonctionnalité est activée sur votre serveur compatible Arc sur le port 22 (ou un autre port autre que celui par défaut)
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\"}}'
Problèmes d’autorisations Azure
Attributions de rôles incorrectes pour activer la connectivité SSH
Ce problème se produit lorsque l’utilisateur actuel n’a pas l’attribution de rôle appropriée pour apporter des contributions à la ressource cible. Erreur :
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
Résolution :
- Vérifiez que vous disposez du rôle Propriétaire ou Contributeur sur la ressource ou contactez le propriétaire/contributeur de la ressource pour configurer la connectivité SSH.
Attributions de rôles incorrectes pour se connecter
Ce problème se produit lorsque l'utilisateur actuel ne dispose pas du rôle approprié sur la ressource cible, notamment en cas de manque d'autorisations read
. Erreurs possibles :
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.
Résolution :
- Assurez-vous que vous disposez du rôle de connexion d'utilisateur local de machine virtuelle sur la ressource à laquelle vous vous connectez. Si vous utilisez la connexion Microsoft Entra, assurez-vous que vous disposez des rôles de connexion utilisateur de machine virtuelle ou de connexion d'administrateur de machine virtuelle et que l'extension de connexion Microsoft Entra SSH est installée sur le serveur compatible Arc.
HybridConnectivity RP non enregistré
Ce problème se produit lorsque le fournisseur de ressources HybridConnectivity n’est pas inscrit pour l’abonnement. Erreur :
- La demande d’informations Azure Relay a échoué : (NoRegisteredProviderFound) Code : NoRegisteredProviderFound
Résolution :
- Exécutez
az provider register -n Microsoft.HybridConnectivity
- Confirmez la réussite en exécutant
az provider show -n Microsoft.HybridConnectivity
, vérifiez queregistrationState
est défini surRegistered
- Redémarrez l’agent hybride sur le serveur avec Arc
Impossible de se connecter après la mise à jour de l’outil CLI et de l’agent Arc
Ce problème se produit lorsque la commande mise à jour crée une configuration de service avant la mise à jour de l’agent Arc. Cela affecte uniquement les versions d’Azure Arc antérieures à la version 1.31 lors de la mise à jour vers une version 1.31 ou ultérieure. Erreur :
Connexion fermée par le port UNKNOWN 65535
Résolution :
- Supprimez la configuration de service existante et autorisez-la à être recréée par la commande CLI lors de la connexion suivante. Exécutez la commande suivante :
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
- Supprimez la configuration de service existante et autorisez-la à être recréée par la commande CLI lors de la connexion suivante. Exécutez la commande suivante :
Désactivez SSH sur les serveurs avec Arc
Cette fonctionnalité peut être désactivée en effectuant les actions suivantes :
Supprimez le port SSH et la fonctionnalité du serveur avec 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\"}}'
Supprimez le point de terminaison de connectivité par défaut :
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
Étapes suivantes
- En savoir plus sur l’accès SSH à serveurs avec Azure Arc.
- Découvrez comment résoudre les problèmes de connexion des agents.