Partager via


Accès SSH aux serveurs avec Azure Arc

Vous pouvez activer des connexions SSH à des serveurs avec Arc sans nécessiter d’adresse IP publique ou d’autres ports ouverts. Cette fonctionnalité peut être utilisée de manière interactive, automatisée ou avec des outils SSH existants, en développant l’impact des outils de gestion existants sur des serveurs avec Azure Arc.

Avantages

L’accès SSH aux serveurs avec Arc offre les avantages suivants :

  • Aucune adresse IP publique ni ports SSH ouverts requis
  • Accès aux machines Windows et Linux
  • Possibilité de se connecter en tant qu’utilisateur local ou utilisateur Azure (Linux uniquement)
  • Prise en charge d’autres outils OpenSSH avec prise en charge des fichiers de configuration

Prérequis

  • Autorisations utilisateur : rôle Propriétaire ou Contributeur attribué pour le serveur cible avec Arc.
  • Serveur activé par Arc
    • Version de l’agent hybride : 1.31.xxxx ou version ultérieure
    • Le service SSH (« sshd ») doit être activé.

Pour Linux, installez openssh-server via un gestionnaire de package. Vous pouvez vérifier si sshd s’exécute sur Linux en exécutant la commande suivante :

ps -aux | grep sshd

Pour Windows, consultez Activer OpenSSH. Vous pouvez vérifier si ssh est installé et en cours d’exécution avec les commandes suivantes :

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

# Check the sshd service is running
Get-Service sshd

Conseil / Astuce

À compter de Windows Server 2025, OpenSSH est installé par défaut.

Authentification de Microsoft Entra

Pour utiliser Microsoft Entra pour l’authentification, vous devez installer aadsshlogin et aadsshlogin-selinux (le cas échéant) sur le serveur avec Arc. Ces packages sont installés lorsque vous déployez l’extension AADSSHLoginForLinuxde machine virtuelle.

Vous devez également configurer les attributions de rôles pour la machine virtuelle. Deux rôles Azure sont utilisés pour autoriser la connexion aux machines virtuelles :

  • Connexion administrateur de machine virtuelle : les utilisateurs auxquels ce rôle est attribué peuvent se connecter à une machine virtuelle Azure avec des privilèges d’administrateur.
  • Connexion utilisateur de machine virtuelle : les utilisateurs auxquels ce rôle est attribué peuvent se connecter à une machine virtuelle Azure avec des privilèges d’utilisateur réguliers.

Un utilisateur Azure disposant du rôle Propriétaire ou Contributeur attribué pour une machine virtuelle ne dispose pas automatiquement de privilèges pour la connexion Microsoft Entra à la machine virtuelle via SSH. Il existe une séparation intentionnelle (et auditée) entre l’ensemble des personnes qui contrôlent les machines virtuelles et l’ensemble des personnes qui peuvent accéder aux machines virtuelles. Étant donné que ces rôles accordent un niveau d’accès élevé, envisagez d’utiliser Microsoft Entra Privileged Identity Management pour un accès juste-à-temps auditable.

Remarque

Les rôles Connexion d’administrateur de machine virtuelle et Connexion d’utilisateur de machine virtuelle utilisent dataActions et peuvent être attribués au niveau du groupe d’administration, de l’abonnement, du groupe de ressources ou de la ressource. Nous vous recommandons d’attribuer les rôles au niveau du groupe d’administration, de l’abonnement ou de la ressource, et non au niveau des machines virtuelles individuelles. Cette pratique permet d’éviter le risque d’atteindre la limite des attributions de rôles Azure par abonnement.

Disponibilité

L’accès SSH aux serveurs avec Arc est actuellement pris en charge dans toutes les régions cloud prises en charge par les serveurs avec Arc.

Activer l’accès SSH aux serveurs avec Arc

Pour activer l’accès SSH aux serveurs avec Arc, suivez les étapes décrites dans cette section.

Enregistrer le fournisseur de ressources HybridConnectivity

Remarque

Il s’agit d’une opération ponctuelle qui doit être effectuée sur chaque abonnement.

Vérifiez si le fournisseur de ressources HybridConnectivity est inscrit :

az provider show -n Microsoft.HybridConnectivity -o tsv --query registrationState

Si le fournisseur de ressources n’est pas inscrit, exécutez la commande suivante pour l’inscrire :

az provider register -n Microsoft.HybridConnectivity

L’opération peut prendre de 2 à 5 minutes. Vérifiez que l’inscription est terminée avant de passer à l’étape suivante.

Créer un point de terminaison de connectivité par défaut

Cette étape doit être effectuée pour chaque serveur avec Arc. Toutefois, vous n’avez peut-être pas besoin d’exécuter ces commandes pour ce faire, car elle doit se terminer automatiquement lors de la première connexion.

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?api-version=2023-03-15 --body '{"properties": {"type": "default"}}'

Remarque

Si vous utilisez Azure CLI à partir de PowerShell, la commande suivante doit être utilisée.

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?api-version=2023-03-15 --body '{\"properties\":{\"type\":\"default\"}}'

Valider la création d’un point de terminaison :

az rest --method get --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

Installez l’outil en ligne de commande local.

La fonctionnalité SSH est fournie dans une extension Azure CLI et un module Azure PowerShell. Installez l’outil approprié pour votre environnement.

az extension add --name ssh

Activer les fonctionnalités sur votre serveur avec Arc

Pour utiliser la fonctionnalité de connexion SSH, vous devez mettre à jour la configuration du service dans le point de terminaison de connectivité sur le serveur avec Arc pour autoriser la connexion SSH à un port spécifique. Vous ne pouvez autoriser la connexion qu’à un seul port. Les outils CLI tentent de mettre à jour le port autorisé au moment de l’exécution, mais le port peut être configuré manuellement avec la commande suivante. Si vous utilisez un port nondefault pour votre connexion SSH, remplacez le port 22 par le port souhaité.

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}}"

Remarque

Il peut y avoir un délai après la mise à jour de la configuration du service avant de pouvoir vous connecter.

Facultatif : Installer l’extension de connexion Microsoft Entra

Pour utiliser Microsoft Entra pour l’authentification sur vos machines Linux, vous devez installer aadsshlogin et aadsshlogin-selinux (le cas échéant) sur le serveur avec Arc. Ces packages sont installés avec l’AADSSHLoginForLinuxextension de machine virtuelle.

Pour ajouter cette extension dans le portail Azure, accédez à votre cluster, puis, dans le menu du service, sous Paramètres, sélectionnez Extensions. Sélectionnez Ajouter, puis sélectionnez Connexion SSH basée sur Azure AD – Azure Arc et terminez l’installation. Vous pouvez également installer l’extension localement via un gestionnaire de package en exécutant ou en exécutant apt-get install aadsshlogin la commande suivante :

az connectedmachine extension create --machine-name <arc enabled server name> --resource-group <resourcegroup> --publisher Microsoft.Azure.ActiveDirectory --name AADSSHLogin --type AADSSHLoginForLinux --location <location>

Exemples

Vous pouvez utiliser Azure CLI ou Azure PowerShell pour accéder aux serveurs avec Arc via SSH. Pour obtenir des exemples et plus d’informations, consultez az ssh (Azure CLI) ou Az.Ssh (Azure PowerShell).

Désactivez SSH sur les serveurs avec Arc

Pour supprimer l’accès SSH à vos serveurs avec Arc, procédez comme suit.

  1. 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\"}}'
    
  2. 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
    

Pour désactiver l’accès à distance à votre ordinateur, y compris l’accès SSH, vous pouvez exécuter la commande suivante azcmagent config sur l’ordinateur :

azcmagent config set incomingconnections.enabled false

Étapes suivantes