Se connecter à une machine virtuelle Linux

Lors de l’hébergement d’une machine virtuelle Linux sur Azure, la méthode la plus courante pour accéder à cette machine virtuelle consiste à utiliser le protocole SSH (Secure Shell Protocol). N’importe quel client SSH standard couramment trouvé dans Linux et Windows vous permet de vous connecter. Vous pouvez également utiliser Azure Cloud Shell à partir de n’importe quel navigateur.

Ce document explique comment se connecter, via SSH, à une machine virtuelle disposant d’une adresse IP publique. Si vous devez vous connecter à une machine virtuelle sans adresse IP publique, consultez Service Azure Bastion.

Prérequis

  • Vous avez besoin d’une paire de clés SSH. Si vous n’en possédez pas déjà, Azure crée une paire de clés pendant le processus de déploiement. Si vous avez besoin d’aide pour créer une clé manuellement, consultez Créer et utiliser une paire de clés publique et privée SSH pour les machines virtuelles Linux dans Azure.

  • Il vous faut un groupe de sécurité réseau (NSG, Network Security Group) existant. La plupart des machines virtuelles disposent d’un groupe NSG par défaut. Si vous n’en possédez pas, vous pouvez en créer un et l’attacher manuellement. Pour plus d’informations, consultez Créer, changer ou supprimer un groupe de sécurité réseau.

  • Le port approprié doit être ouvert pour que vous puissiez vous connecter à une machine virtuelle Linux. Généralement, SSH utilise le port 22. Les instructions suivantes supposent le port 22, mais le processus est identique pour les autres numéros de port. Vous pouvez valider qu’un port approprié est ouvert pour SSH à l’aide de l’utilitaire de résolution des problèmes ou en vérifiant manuellement les paramètres de votre machine virtuelle. Pour vérifier si le port 22 est ouvert :

    1. Dans la page de la machine virtuelle, sélectionnez Mise en réseau dans le menu de gauche.

    2. Dans la page Mise en réseau, vérifiez s’il existe une règle qui autorise le TCP sur le port 22 à partir de l’adresse IP de l’ordinateur que vous utilisez pour vous connecter à la machine virtuelle. Si la règle existe, vous pouvez passer à la section suivante.

      Capture d’écran montrant comment vérifier si une règle existe déjà qui autorise les connexions SSH.

    3. S’il n’existe pas de règle, ajoutez-en une en sélectionnant Ajouter une règle de port entrant.

    4. Pour Service, sélectionnez SSH dans la liste déroulante.

      Capture d’écran montrant où choisir SSH lors de la création d’une nouvelle règle NSG

    5. Modifier la Priorité et la Source si nécessaire

    6. Pour Nom, tapez SSH.

    7. Une fois que vous avez terminé, sélectionnez Ajouter.

    8. Vous devez maintenant disposer d’une règle SSH dans la table des règles de port entrant.

  • Votre machine virtuelle doit posséder une adresse IP publique. Pour vérifier si votre machine virtuelle possède une adresse IP publique, sélectionnez Vue d’ensemble dans le menu de gauche et examinez la section Mise en réseau. Si vous voyez une adresse IP en regard de l’Adresse IP publique, votre machine virtuelle dispose d’une adresse IP publique

    Si votre machine virtuelle n’a pas d’adresse IP publique, elle ressemble à ceci :

    Capture d’écran montrant à quoi ressemble la section Mise en réseau quand vous n’avez pas d’adresse IP publique.

    Pour en savoir plus sur l’ajout d’une adresse IP publique à une machine virtuelle existante, consultez Associer une adresse IP publique à une machine virtuelle

  • Vérifiez que votre machine virtuelle est en cours d’exécution. Sous l’onglet Vue d’ensemble, dans la section Essentials, vérifiez si la machine virtuelle a pour état Running (En cours d’exécution). Pour démarrer la machine virtuelle, sélectionnez Démarrer en haut de la page.

    Capture d’écran montrant comment vérifier que votre machine virtuelle est en cours d’exécution.

Si vous rencontrez des problèmes de connexion, vous pouvez également utiliser le portail :

  1. Accédez au Portail Azure pour vous connecter à une machine virtuelle. Recherchez et sélectionnez Machines virtuelles.
  2. Sélectionnez la machine virtuelle dans la liste.
  3. Sélectionnez Se connecter dans le menu de gauche.
  4. Choisissez l’option qui correspond à votre mode de connexion préféré. Le portail vous aide à parcourir les conditions préalables à la connexion.

Connexion à la machine virtuelle

Une fois les prérequis ci-dessus remplis, vous pouvez vous connecter à votre machine virtuelle. Ouvrez le client SSH de votre choix. La commande client SSH est généralement incluse dans Linux, macOS et Windows. Si vous utilisez Windows 7 ou version antérieure, où OpenSSH Win32 n’est pas inclus par défaut, envisagez d’installer WSL ou d’utiliser Azure Cloud Shell à partir du navigateur.

Notes

Les exemples suivants supposent que la clé SSH est au format key.pem. Si vous avez utilisé l’interface CLI ou Azure PowerShell pour télécharger vos clés, elles peuvent être au format id_rsa ou ED25519.

SSH avec une nouvelle paire de clés

  1. Vérifiez que vos clés publiques et privées se trouvent dans le répertoire approprié. Le répertoire est généralement ~/.ssh.

    Si vous avez généré des clés manuellement ou que vous les avez générées avec l’interface CLI, les clés figurent probablement déjà à cet emplacement. Toutefois, si vous les avez téléchargés au format pem à partir du Portail Azure, vous devrez peut-être les déplacer vers l’emplacement approprié. Le déplacement des clés s’effectue avec la syntaxe suivante : mv PRIVATE_KEY_SOURCE PRIVATE_KEY_DESTINATION

    Par exemple, si la clé se trouve dans le dossier Downloads et que myKey.pem est le nom de votre clé SSH, tapez :

    mv /Downloads/myKey.pem ~/.ssh
    

    Notes

    Si vous utilisez WSL, les fichiers locaux se trouvent dans le répertoire mnt/c/. Le chemin du dossier de téléchargements et de la clé SSH est alors /mnt/c/Users/{USERNAME}/Downloads/myKey.pem.

  2. Vérifiez que vous disposez d’un accès en lecture seule à la clé privée en exécutant la commande suivante :

    chmod 400 ~/.ssh/myKey.pem
    
  3. Exécutez la commande SSH avec la syntaxe suivante : ssh -i PATH_TO_PRIVATE_KEY USERNAME@EXTERNAL_IP

    Par exemple, si votre azureuser est le nom d’utilisateur que vous avez créé et que 20.51.230.13 est l’adresse IP publique de votre machine virtuelle, tapez :

    ssh -i ~/.ssh/myKey.pem azureuser@20.51.230.13
    
  4. Validez l’empreinte digitale retournée.

    Si vous n’avez jamais établi de connexion avec cette machine virtuelle auparavant, vous êtes invité à vérifier l’empreinte digitale de l’hôte. Il est tentant d’accepter l’empreinte digitale présentée. Cependant, cela vous expose à une attaque potentielle de l’intercepteur. Vous devez toujours valider l’empreinte digitale des hôtes. Cette opération ne doit être effectuée que pour la première connexion à partir d’un client. Pour obtenir l’empreinte digitale de l’hôte sur le portail, utilisez la fonctionnalité Exécuter une commande pour exécuter la commande suivante :

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  5. Opération réussie. Vous devez à présent être connecté à votre machine virtuelle. Si vous ne parvenez pas à vous connecter, consultez Résolution des problèmes liés aux connexions SSH.

SSH avec une clé publique existante

  1. Exécutez la commande suivante dans votre client SSH. Dans cet exemple, 20.51.230.13 est l’adresse IP publique de votre machine virtuelle et azureuser est le nom d’utilisateur que vous avez créé lors de la création de la machine virtuelle.

    ssh azureuser@20.51.230.13
    
  2. Validez l’empreinte digitale retournée.

    Si vous ne vous êtes jamais connecté à la machine virtuelle souhaitée à partir de votre client SSH actuel avant d’être invité à vérifier l’empreinte digitale de l’hôte. Bien que l’option par défaut consiste à accepter l’empreinte digitale présentée, vous êtes exposé à une possible « personne en attaque du milieu ». Vous devez toujours valider l’empreinte digitale de l’hôte, ce qui ne doit être effectué que la première fois que votre client se connecte. Pour obtenir l’empreinte digitale de l’hôte via le portail, utilisez la fonctionnalité Run Command pour exécuter la commande :

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  3. Opération réussie. Vous devez à présent être connecté à votre machine virtuelle. Si vous ne parvenez pas à vous connecter, consultez notre guide de résolution des problèmes.

Authentification par mot de passe

Avertissement

Ce type de méthode d’authentification n’est pas aussi sécurisé qu’une clé SSH et n’est pas recommandé.

  1. Exécutez la commande suivante dans votre client SSH. Dans cet exemple, 20.51.230.13 est l’adresse IP publique de votre machine virtuelle et azureuser est le nom d’utilisateur que vous avez créé lors de la création de la machine virtuelle.

    ssh azureuser@20.51.230.13
    

    Si vous avez oublié votre mot de passe ou votre nom d’utilisateur, consultez Réinitialiser l’accès à une machine virtuelle Azure

  2. Validez l’empreinte digitale retournée.

    Si vous ne vous êtes jamais connecté à la machine virtuelle souhaitée à partir de votre client SSH actuel avant d’être invité à vérifier l’empreinte digitale de l’hôte. Bien que l’option par défaut consiste à accepter l’empreinte digitale présentée, vous êtes exposé à une possible « personne en attaque du milieu ». Vous devez toujours valider l’empreinte digitale de l’hôte, ce qui ne doit être effectué que la première fois que votre client se connecte. Pour obtenir l’empreinte digitale de l’hôte via le portail, utilisez la fonctionnalité Run Command pour exécuter la commande :

    ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
    
  3. Opération réussie. Vous devez à présent être connecté à votre machine virtuelle. Si vous ne parvenez pas à vous connecter, consultez Résolution des problèmes liés aux connexions SSH.

Étapes suivantes

Découvrez comment transférer des fichiers vers une machine virtuelle existante. Pour cela, consultez Utiliser SCP pour déplacer des fichiers vers et depuis une machine virtuelle.