Se connecter à une machine virtuelle à l’aide de Bastion et d’un client natif Linux

Cet article vous aide à vous connecter par le biais d’Azure Bastion à une machine virtuelle dans un réseau virtuel à l’aide du client natif sur votre ordinateur Linux local. La fonctionnalité client native vous permet de vous connecter à vos machines virtuelles cibles via Bastion à l'aide d'Azure CLI et étend vos options de connexion pour inclure la paire de clés SSH locale et l'ID Microsoft Entra. Pour plus d’informations et pour connaître les étapes de configuration de Bastion pour les connexions client natives, consultez l’article Configurer Bastion pour des connexions clientes natives. Les connexions via le client natif nécessitent la référence SKU Bastion Standard.

Diagram shows a connection via native client.

Après avoir configuré Bastion pour la prise en charge du client natif, vous pouvez vous connecter à une machine virtuelle à l’aide d’un client Linux natif. La méthode que vous utilisez pour vous connecter dépend à la fois du client à partir duquel vous vous connectez et de la machine virtuelle à laquelle vous vous connectez. La liste suivante présente certaines des méthodes disponibles pour vous connecter à partir d’un client natif Linux. Voir Connexion aux machines virtuelles pour la liste complète des combinaisons connexion client/fonctionnalités disponibles.

  • Se connecter à une machine virtuelle Linux en utilisant az network bastion ssh.
  • Se connecter à une machine virtuelle Windows à l’aide de la commande az network bastion tunnel.
  • Se connecter à une machine virtuelle à l’aide de la commande az network bastion tunnel.
  • Télécharger des fichiers vers votre machine virtuelle cible via SSH à l’aide de la commande az network bastion tunnel. Le téléchargement de fichiers à partir de la machine virtuelle cible vers le client local n’est actuellement pas pris en charge pour cette commande.

Prérequis

Avant de commencer, vérifiez que les prérequis suivants sont remplis :

Vérifier les rôles et les ports

Vérifiez que les rôles et les ports suivants sont configurés pour la connexion de la machine virtuelle.

Rôles nécessaires

  • Rôle de lecteur sur la machine virtuelle.

  • Rôle de lecteur sur la carte réseau avec adresse IP privée de la machine virtuelle.

  • Rôle de lecteur sur la ressource Azure Bastion.

  • Rôle de connexion de l'administrateur de la machine virtuelle ou de connexion de l'utilisateur de la machine virtuelle, si vous utilisez la méthode de connexion Microsoft Entra. Vous ne devez le faire que si vous activez la connexion Microsoft Entra à l'aide des processus décrits dans l'un de ces articles :

Ports

Pour vous connecter à une machine virtuelle Linux à l’aide de la prise en charge du client natif, vous devez ouvrir les ports suivants sur votre machine virtuelle Linux :

  • Port d’entrée : SSH (22) ou
  • Port d’entrée : valeur personnalisée (vous devez spécifier ce port personnalisé quand vous vous connectez à la machine virtuelle avec Azure Bastion)

Pour vous connecter à une machine virtuelle Windows à l’aide de la prise en charge du client natif, vous devez ouvrir les ports suivants sur votre machine virtuelle Windows :

  • Port d’entrée : RDP (3389) ou
  • Port d’entrée : valeur personnalisée (vous devez spécifier ce port personnalisé quand vous vous connectez à la machine virtuelle avec Azure Bastion)

Pour en savoir plus sur la configuration optimale des groupes de sécurité réseau avec Azure Bastion, consultez Utilisation de l’accès NSG et Azure Bastion.

Se connecter à une machine virtuelle Linux

Les étapes décrites dans les sections suivantes vous aident à vous connecter à une machine virtuelle Linux à partir d’un client natif Linux à l’aide de la commande az network bastion. Cette extension peut être installée en exécutant az extension add --name bastion.

Quand vous vous connectez à l’aide de cette commande, les transferts de fichiers ne sont pas pris en charge. Si vous souhaitez télécharger des fichiers, utilisez plutôt la commande az network bastion tunnel.

Cette commande vous permet d’effectuer les opérations suivantes :

  • Se connecter à une machine virtuelle Linux avec SSH.
  • Authentifiez-vous via Microsoft Entra ID
  • Se connecter à des sessions de machine virtuelle simultanées dans le réseau virtuel.

Pour vous connecter, utilisez l’un des exemples suivants. Une fois que vous vous êtes connecté à votre machine virtuelle cible, le client natif sur votre ordinateur s’ouvre avec votre session de machine virtuelle.

Paire de clés SSH

Pour vous connecter à votre machine virtuelle à l’aide d’une paire de clés SSH, utilisez l’exemple suivant.

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"

Authentification Microsoft Entra

Si vous vous connectez à une machine virtuelle compatible avec la connexion Microsoft Entra, utilisez l'exemple suivant. Pour plus d’informations, consultez Machines virtuelles Azure Linux et Microsoft Entra ID.

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "AAD"

Nom d’utilisateur/mot de passe

Si vous vous connectez à votre machine virtuelle à l’aide d’un nom d’utilisateur local et d’un mot de passe, utilisez l’exemple suivant. Vous serez ensuite invité à entrer le mot de passe de la machine virtuelle cible.

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --auth-type "password" --username "<Username>"

Ssh vers une adresse IP de machine virtuelle Linux

Vous pouvez vous connecter à une adresse IP privée de machine virtuelle au lieu de l’ID de ressource. Sachez que l'authentification Microsoft Entra ainsi que les ports et protocoles personnalisés ne sont pas pris en charge lors de l'utilisation de ce type de connexion. Pour plus d’informations sur les connexions basées sur IP, consultez Se connecter à une machine virtuelle : Adresses IP.

À l’aide de la commande az network bastion, remplacez --target-resource-id par --target-ip-address et l’adresse IP spécifiée pour vous connecter à votre machine virtuelle. L’exemple suivant utilise la méthode d’authentification --ssh-key.

az network bastion ssh --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-addres "<VMIPAddress>" --auth-type "ssh-key" --username "<Username>" --ssh-key "<Filepath>"

Connexion à une machine virtuelle - commande tunnel

La commande az network bastion tunnel est une autre façon de vous connecter à vos machines virtuelles. Lorsque vous utilisez cette commande, vous pouvez effectuer les opérations suivantes :

  • Connectez-vous à partir de clients natifs sur des ordinateurs locaux non Windows. (Par exemple, un ordinateur Linux)
  • Connectez-vous à une machine virtuelle à l’aide de SSH ou RDP. (Le tunnel bastion ne relaie pas les serveurs ou les hôtes web.)
  • Utilisez le client natif de votre choix.
  • Téléchargez des fichiers sur votre machine virtuelle cible à partir de votre ordinateur local. Le téléchargement de fichiers à partir de la machine virtuelle cible vers le client local n’est actuellement pas pris en charge pour cette commande.

Limites :

  • La connexion à l’aide d’une clé privée SSH stockée dans Azure Key Vault n’est pas prise en charge avec cette fonctionnalité. Téléchargez votre clé privée dans un fichier sur votre ordinateur local avant de vous connecter à votre machine virtuelle Linux à l’aide d’une paire de clés SSH.
  • Cette fonctionnalité n’est pas prise en charge sur Cloud Shell.

Étapes :

  1. Connectez-vous à votre compte Azure en utilisant az login. Si vous avez plus d'un abonnement, vous pouvez les visualiser en utilisant az account listet sélectionner l'abonnement contenant votre ressource Bastion en utilisant az account set --subscription "<subscription ID>".

  2. Ouvrez le tunnel vers votre machine virtuelle cible.

    az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-resource-id "<VMResourceId or VMSSInstanceResourceId>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"
    
  3. Connectez-vous à votre machine virtuelle cible en utilisant SSH ou RDP, le client natif de votre choix, et le port de la machine locale que vous avez spécifié à l'étape précédente.

    Par exemple, vous pouvez utiliser la commande suivante si le client OpenSSH est installé sur votre ordinateur local :

    ssh <username>@127.0.0.1 -p <LocalMachinePort>
    

Tunnel vers l'adresse IP d'une machine virtuelle

Vous pouvez également vous connecter à une adresse IP privée de machine virtuelle, au lieu de l’ID de ressource. L'authentification Microsoft Entra et les ports et protocoles personnalisés ne sont pas pris en charge lors de l'utilisation de ce type de connexion. Pour plus d’informations sur les connexions basées sur IP, consultez Se connecter à une machine virtuelle : Adresses IP.

À l’aide de la commande az network bastion tunnel, remplacez --target-resource-id par --target-ip-address et l’adresse IP spécifiée pour vous connecter à votre machine virtuelle.

az network bastion tunnel --name "<BastionName>" --resource-group "<ResourceGroupName>" --target-ip-address "<VMIPAddress>" --resource-port "<TargetVMPort>" --port "<LocalMachinePort>"

Tunnel à connexions multiples

  1. Ajoutez ce qui suit à votre fichier $HOME.ssh\config.

    Host tunneltunnel
      HostName 127.0.0.1
      Port 2222
      User mylogin
      StrictHostKeyChecking=No
      UserKnownHostsFile=\\.\NUL
    
  2. Ajoutez la connexion de tunnel à votre connexion de tunnel établie.

    az network bastion tunnel --name mybastion --resource-group myrg --target-resource-id /subscriptions/<mysubscription>/resourceGroups/myrg/providers/Microsoft.Compute/virtualMachines/myvm --resource-port 22 --port 22
    
  3. Créez un tunnel SSH dans le tunnel bastion.

    ssh -L 2222:127.0.0.1:22 mylogin@127.0.0.1
    
  4. Utilisez VS Code pour vous connecter à votre connexion de tunnel.

Étapes suivantes

Charger ou télécharger des fichiers