Comment utiliser des clés SSH avec Windows sur Azure

S’applique à : ✔️ Machines virtuelles Linux ✔️ Groupes identiques flexibles

Cet article est destiné aux utilisateurs Windows qui souhaitent créer et utiliser des clés Secure Shell (SSH) pour se connecter à des machines virtuelles Linux dans Azure. Vous pouvez également générer et stocker des clés SSH dans le Portail Azure à utiliser lors de la création de machines virtuelles dans le portail.

Pour utiliser des clés SSH à partir d’un client Linux ou macOS, consultez les étapes rapides. Pour obtenir une vue d’ensemble plus détaillée de SSH, consultez Procédure détaillée : Créer et gérer des clés SSH pour l’authentification sur une machine virtuelle Linux dans Azure.

Vue d’ensemble de SSH et des clés

SSH est un protocole de connexion chiffré qui permet d’ouvrir des sessions sécurisées via des connexions non sécurisées. SSH est le protocole de connexion par défaut pour les machines virtuelles Linux hébergées dans Azure. Bien que le protocole SSH lui-même offre une connexion chiffrée, l’utilisation de mots de passe avec SSH laisse néanmoins la machine virtuelle vulnérable aux attaques en force brute. Nous vous recommandons de vous connecter à une machine virtuelle via SSH à l’aide d’une paire de clés publique/privée, également appelées clés SSH.

La paire de clés publique-privée est semblable au verrou sur votre porte d’entrée. Le verrou est exposé au public, toute personne disposant de la bonne clé peut ouvrir la porte. La clé est privée et fournie uniquement aux personnes auxquelles vous faites confiance, car elle peut être utilisée pour déverrouiller la porte.

  • La clé publique est placée sur votre machine virtuelle Linux lorsque vous créez la machine virtuelle.

  • La clé privée reste sur votre système local. Protégez cette clé privée. Ne la partagez pas.

Lorsque vous vous connectez à votre machine virtuelle Linux, la machine virtuelle teste le client SSH pour s’assurer qu’il dispose de la clé privée appropriée. Si le client a la clé privée, il est autorisé à accéder à la machine virtuelle.

Selon les stratégies de sécurité de votre organisation, vous pouvez réutiliser une paire de clés unique pour accéder à plusieurs services et machines virtuelles Azure. Vous n’avez pas besoin d’une paire de clés distincte pour chaque machine virtuelle.

Votre clé publique peut être partagée avec n’importe qui, mais vous seul (ou votre infrastructure de sécurité locale) devez avoir accès à votre clé privée.

Formats de clé SSH pris en charge

Azure prend en charge les paires de clés publiques-privées RSA du protocole SSH-2 ayant une longueur minimale de 2 048 bits. Les autres formats clés tels que ED25519 et ECDSA ne sont pas pris en charge.

Clients SSH

Les versions récentes de Windows 10 incluent des commandes client OpenSSH permettant de créer et d’utiliser des clés SSH, ainsi que d’établir des connexions SSH à partir de PowerShell ou d’une invite de commandes.

Vous pouvez également utiliser Bash dans Azure Cloud Shell pour vous connecter à votre machine virtuelle. Vous pouvez utiliser Cloud Shell dans un navigateur Web, à partir du Portail Azure ou en tant que terminal dans Visual Studio Code à l’aide de l’extension de compte Azure.

Vous pouvez également installer le sous-système Windows pour Linux pour vous connecter à votre machine virtuelle via SSH et utiliser d’autres outils Linux natifs dans un interpréteur de commandes Bash.

Création d’une paire de clés SSH

Le moyen le plus simple de créer et de gérer vos clés SSH consiste à utiliser le portail pour les créer et les stocker en vue de les réutiliser.

Vous pouvez également créer des paires de clés avec l’interface Azure CLI à l’aide de la commande az sshkey create, comme décrit dans Générer et stocker des clés SSH.

Pour créer une paire de clés SSH sur votre ordinateur local à l’aide de la commande ssh-keygen à partir de PowerShell ou d’une invite de commandes, tapez la commande :

ssh-keygen -m PEM -t rsa -b 2048

Entrez un nom de fichier ou utilisez la valeur par défaut indiquée entre parenthèses (par exemple C:\Users\username/.ssh/id_rsa). Entrez une phrase secrète pour le fichier ou laissez la phrase secrète vide si vous ne souhaitez pas en utiliser.

Créer une machine virtuelle à l’aide de votre clé

Pour créer une machine virtuelle Linux qui utilise des clés SSH pour l’authentification, fournissez votre clé publique SSH lors de la création de la machine virtuelle.

À l’aide de l’interface de ligne de commande Azure, vous spécifiez le chemin d’accès et le nom de fichier de la clé publique à l’aide de az vm create et du paramètre --ssh-key-value.

az vm create \
   --resource-group myResourceGroup \
   --name myVM \
   --image Ubuntu2204\
   --admin-username azureuser \
   --ssh-key-value ~/.ssh/id_rsa.pub

Avec PowerShell, utilisez New-AzVM et ajoutez la clé SSH à la configuration de la machine virtuelle à l’aide de `. Pour obtenir un exemple, consultez Démarrage rapide : Créer une machine virtuelle Linux dans Azure avec PowerShell.

Si vous effectuez plusieurs de déploiements à l’aide du portail, il est possible que vous deviez charger votre clé publique dans Azure où elle peut être facilement sélectionnée lors de la création d’une machine virtuelle à partir du portail. Pour plus d’informations, consultez Charger une clé SSH.

Connexion à votre machine virtuelle

Une fois la clé publique déployée sur votre machine virtuelle Azure et la clé privée sur votre système local, établissez une connexion SSH sur votre machine virtuelle à l’aide de l’adresse IP ou du nom DNS de votre machine virtuelle. Remplacez azureuser et 10.111.12.123 dans la commande suivante par le nom d’utilisateur de l’administrateur, l’adresse IP (ou le nom de domaine complet) et le chemin d’accès à votre clé privée :

ssh -i ~/.ssh/id_rsa azureuser@10.111.12.123

Si vous n’avez jamais établi de connexion avec cette machine virtuelle auparavant, vous êtes invité à vérifier l’empreinte digitale des hôtes. Il est tentant d’accepter l’empreinte digitale présentée, mais cela vous expose à une possible attaque de l’intercepteur. Vous devez toujours valider l’empreinte digitale des hôtes. Vous ne devez effectuer cette opération que lors de la première connexion d’un client. Pour obtenir l’empreinte digitale de l’hôte via le portail, utilisez Run Command à l’aide de la commande qui suit : ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'.

Capture d’écran montrant l’utilisation de Run Command pour valider l’empreinte digitale de l’hôte.

Pour exécuter la commande à l’aide de l’interface CLI, utilisez la commande az vm run-command invoke.

Si vous avez configuré une phrase secrète quand vous avez créé votre paire de clés, entrez-la quand vous y êtes invité.

Si la machine virtuelle utilise la stratégie juste-à-temps, vous devez demander à y accéder avant de pouvoir vous connecter à cette machine virtuelle. Pour plus d’informations sur la stratégie juste-à-temps, consultez Gérer l’accès à la machine virtuelle à l’aide de la stratégie juste-à-temps.

Étapes suivantes