Comment utiliser des clés SSH avec Windows sur AzureHow to use SSH keys with Windows on Azure

Cet article décrit plusieurs méthodes de génération et d’utilisation de clés SSH Secure Shell sur un ordinateur Windows pour créer une machine virtuelle Linux et s’y connecter dans Azure.This article describes ways to generate and use secure shell (SSH) keys on a Windows computer to create and connect to a Linux virtual machine (VM) in Azure. Pour utiliser des clés SSH à partir d’un client Linux ou macOS, consultez le guide rapide ou détaillé.To use SSH keys from a Linux or macOS client, see the quick or detailed guidance.

Vue d’ensemble de SSH et des clésOverview of SSH and keys

SSH est un protocole de connexion chiffré qui permet d’ouvrir des sessions sécurisées via des connexions non sécurisées.SSH is an encrypted connection protocol that allows secure sign-ins over unsecured connections. SSH est le protocole de connexion par défaut pour les machines virtuelles Linux hébergées dans Azure.SSH is the default connection protocol for Linux VMs hosted in Azure. Bien que le protocole SSH lui-même offre une connexion chiffrée, l’utilisation de mots de passe avec des connexions SSH laisse néanmoins la machine virtuelle vulnérable aux attaques en force brute ou au piratage des mots de passe.Although SSH itself provides an encrypted connection, using passwords with SSH connections still leaves the VM vulnerable to brute-force attacks or guessing of passwords. Une méthode plus sûre et recommandée pour se connecter à une machine virtuelle à l’aide de SSH consiste à utiliser une paire de clés publique et privée, également appelées clés SSH.A more secure and preferred method of connecting to a VM using SSH is by using a public-private key pair, also known as SSH keys.

  • La clé publique est placée sur votre machine virtuelle Linux, ou tout autre service que vous souhaitez utiliser avec le chiffrement à clé publique.The public key is placed on your Linux VM, or any other service that you wish to use with public-key cryptography.

  • La clé privée reste sur votre système local.The private key remains on your local system. Protégez cette clé privée.Protect this private key. Ne la partagez pas.Do not share it.

Quand vous utilisez un client SSH pour vous connecter à votre machine virtuelle Linux (qui a la clé publique), la machine virtuelle distante teste le client pour vérifier qu’il a la clé privée.When you use an SSH client to connect to your Linux VM (which has the public key), the remote VM tests the client to make sure it possesses the private key. Si le client a la clé privée, il est autorisé à accéder à la machine virtuelle.If the client has the private key, it's granted access to the VM.

Selon les stratégies de sécurité de votre organisation, vous pouvez réutiliser une paire de clés publique-privée unique pour accéder à plusieurs services et machines virtuelles Azure.Depending on your organization's security policies, you can reuse a single public-private key pair to access multiple Azure VMs and services. Vous n’avez pas besoin d’une paire de clés distincte pour chaque machine virtuelle ou service auxquels vous souhaitez accéder.You do not need a separate pair of keys for each VM or service you wish to access.

Votre clé publique peut être partagée avec n’importe qui, mais vous seul (ou votre infrastructure de sécurité locale) devez connaître votre clé privée.Your public key can be shared with anyone, but only you (or your local security infrastructure) should possess your private key.

Formats de clé SSH pris en chargeSupported SSH key formats

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.Azure currently supports SSH protocol 2 (SSH-2) RSA public-private key pairs with a minimum length of 2048 bits. Les autres formats clés tels que ED25519 et ECDSA ne sont pas pris en charge.Other key formats such as ED25519 and ECDSA are not supported.

Packages Windows et clients SSHWindows packages and SSH clients

Vous vous connectez à des machines virtuelles Linux et gérez ces machines dans Azure à l’aide d’un client SSH.You connect to and manage Linux VMs in Azure using an SSH client. Les ordinateurs qui exécutent Linux ou macOS ont généralement une suite de commandes SSH pour générer et gérer les clés SSH et établir les connexions SSH.Computers running Linux or macOS usually have a suite of SSH commands to generate and manage SSH keys and to make SSH connections.

Les ordinateurs Windows n’ont pas toujours des commandes SSH comparables installées.Windows computers do not always have comparable SSH commands installed. Les versions récentes de Windows 10 sont dotées de commandes client OpenSSH permettant de créer et de gérer des clés SSH, ainsi que d’établir des connexions SSH à partir d’une invite de commandes.Recent versions of Windows 10 provide OpenSSH client commands to create and manage SSH keys and make SSH connections from a command prompt. Les versions récentes de Windows 10 intègrent également le sous-système Windows pour Linux, afin d’exécuter des utilitaires et d’y accéder, comme un client SSH intégré nativement dans un interpréteur de commandes Bash.Recent Windows 10 versions also include the Windows Subsystem for Linux to run and access utilities such as an SSH client natively within a Bash shell.

Voici une liste des packages d’autres clients SSH Windows courants que vous pouvez installer localement :Other common Windows SSH clients you can install locally are included in the following packages:

Vous pouvez aussi utiliser les utilitaires SSH disponibles dans Bash dans Azure Cloud Shell.You can also use the SSH utilities available in Bash in the Azure Cloud Shell.

Création d’une paire de clés SSHCreate an SSH key pair

Les sections suivantes décrivent deux options de création d’une paire de clés SSH sur Windows.The following sections describe two options to create an SSH key pair on Windows. Vous pouvez utiliser une commande d’interpréteur de commandes (ssh-keygen) ou un outil GUI (PuTTYgen).You can use a shell command (ssh-keygen) or a GUI tool (PuTTYgen). Notez également que lorsque vous utilisez PowerShell pour créer une clé, vous devez charger la clé publique au format ssh.com (SECSH).Also note, when using Powershell to create a key, upload the public key as ssh.com(SECSH) format. Si vous utilisez l’interface CLI, convertissez la clé au format OpenSSH avant le chargement.When using CLI, convert the key into OpenSSH format prior to uploading.

Créer des clés SSH avec ssh-keygenCreate SSH keys with ssh-keygen

Si vous exécutez un interpréteur de commandes sur Windows qui prend en charge des outils du client SSH (ou si vous utilisez Azure Cloud Shell), créez une paire de clés SSH à l’aide de la commande ssh-keygen.If you run a command shell on Windows that supports SSH client tools (or you use Azure Cloud Shell), create an SSH key pair using the ssh-keygen command. Tapez la commande suivante et suivez les invites.Type the following command, and answer the prompts. Si une paire de clés SSH existe dans l’emplacement choisi, les fichiers sont remplacés.If an SSH key pair exists in the chosen location, those files are overwritten.

ssh-keygen -t rsa -b 2048

Pour plus d’informations, consultez les étapes rapides ou détaillées pour créer les clés SSH avec ssh-keygen.For more background and information, see the quick or detailed steps to create SSH keys using ssh-keygen.

Créer des clés SSH avec PuTTYgenCreate SSH keys with PuTTYgen

Si vous préférez utiliser un outil GUI pour créer les clés SSH, vous pouvez utiliser le générateur de clé PuTTYgen, inclus dans le package de téléchargement de PuTTY.If you prefer to use a GUI-based tool to create SSH keys, you can use the PuTTYgen key generator, included with the PuTTY download package.

Pour créer une paire de clés SSH RSA avec PuTTYgen :To create an SSH RSA key pair with PuTTYgen:

  1. Démarrez PuTTYgen.Start PuTTYgen.

  2. Cliquez sur Générer.Click Generate. Par défaut, PuTTYgen génère une clé SSH-2 RSA 2048 bits.By default PuTTYgen generates a 2048-bit SSH-2 RSA key.

  3. Survolez la zone vide avec la souris pour donner un caractère aléatoire à la clé.Move the mouse around in the blank area to provide randomness for the key.

  4. Une fois la clé publique générée, vous pouvez entrer une phrase secrète et la confirmer.After the public key is generated, optionally enter and confirm a passphrase. Vous êtes invité à entrer la phrase secrète quand vous vous authentifiez auprès de la machine virtuelle avec votre clé SSH privée.You will be prompted for the passphrase when you authenticate to the VM with your private SSH key. Sans cette phrase secrète, toute personne qui récupère votre clé privée peut se connecter à une machine virtuelle ou un service utilisant cette clé.Without a passphrase, if someone obtains your private key, they can sign in to any VM or service that uses that key. Nous vous recommandons de créer une phrase secrète.We recommend you create a passphrase. Toutefois, si vous oubliez cette phrase secrète, il sera impossible de la récupérer.However, if you forget the passphrase, there is no way to recover it.

  5. La clé publique apparaît en haut de la fenêtre.The public key is displayed at the top of the window. Vous copiez l’intégralité de cette clé publique et la collez dans le portail Azure ou dans un modèle Azure Resource Manager quand vous créez une machine virtuelle Linux.You can copy this entire public key and then paste it into the Azure portal or an Azure Resource Manager template when you create a Linux VM. Vous pouvez également sélectionner Enregistrer la clé publique pour enregistrer une copie sur votre ordinateur :You can also select Save public key to save a copy to your computer:

    Enregistrer le fichier de clé publique PuTTY

  6. Pour enregistrer la clé privée au format de clé privée PuTTy (fichier .ppk), vous pouvez aussi sélectionner Enregistrer la clé privée.Optionally, to save the private key in PuTTy private key format (.ppk file), select Save private key. Vous aurez besoin du fichier .ppk par la suite si vous voulez utiliser PuTTY pour établir une connexion SSH à la machine virtuelle.You will need the .ppk file later to use PuTTY to make an SSH connection to the VM.

    Enregistrer le fichier de clé privée PuTTY

    Si vous voulez enregistrer la clé privée au format OpenSSH, le format de clé privée utilisé par de nombreux clients SSH, sélectionnez Conversions > Exporter la clé OpenSSH.If you want to save the private key in the OpenSSH format, the private key format used by many SSH clients, select Conversions > Export OpenSSH key.

Fournir une clé publique SSH lors du déploiement d’une machine virtuelleProvide an SSH public key when deploying a VM

Pour créer une machine virtuelle Linux qui utilise des clés SSH pour l’authentification, fournissez votre clé publique SSH à la création de la machine virtuelle à l’aide du portail Azure ou d’autres méthodes.To create a Linux VM that uses SSH keys for authentication, provide your SSH public key when creating the VM using the Azure portal or other methods.

L’exemple suivant montre comment copier et coller cette clé publique dans le portail Azure lorsque vous créez une machine virtuelle Linux.The following example shows how you would copy and paste this public key into the Azure portal when you create a Linux VM. Généralement, la clé publique est ensuite stockée dans le répertoire ~/.ssh/authorized_key sur votre nouvelle machine virtuelle.The public key is typically then stored in the ~/.ssh/authorized_key directory on your new VM.

Utiliser la clé publique lorsque vous créez une machine virtuelle dans le portail Azure

Connexion à votre machine virtuelleConnect to your VM

L’une des méthode permettant d’établir une connexion SSH à votre machine virtuelle Linux à partir de Windows est d’utiliser un client SSH.One way to make an SSH connection to your Linux VM from Windows is to use an SSH client. Il s’agit de la méthode par défaut si vous avez un client SSH installé sur votre système Windows ou si vous utilisez les outils SSH dans Bash dans Azure Cloud Shell.This is the preferred method if you have an SSH client installed on your Windows system, or if you use the SSH tools in Bash in Azure Cloud Shell. Si vous préférez un outil GUI, vous pouvez vous connecter avec PuTTY.If you prefer a GUI-based tool, you can connect with PuTTY.

Utiliser un client SSHUse an SSH client

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.With the public key deployed on your Azure VM, and the private key on your local system, SSH to your VM using the IP address or DNS name of your VM. Remplacez azureuser et myvm.westus.cloudapp.azure.com dans la commande suivante par le nom d’administrateur et le nom de domaine complet (ou adresse IP) :Replace azureuser and myvm.westus.cloudapp.azure.com in the following command with the administrator user name and the fully qualified domain name (or IP address):

ssh azureuser@myvm.westus.cloudapp.azure.com

Si vous avez configuré une phrase secrète au moment de créer votre paire de clés, entrez-la quand vous y êtes invité pendant le processus de connexion.If you configured a passphrase when you created your key pair, enter the passphrase when prompted during the sign-in process.

Si la machine virtuelle utilise la stratégie juste-à-temps, vous devez demander à y accéder avant de pouvoir vous connecter à cette machine virtuelle.If the VM is using the just-in-time access policy, you need to request access before you can connect to the VM. 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.For more information about the just-in-time policy, see Manage virtual machine access using the just in time policy.

Se connecter avec PuTTYConnect with PuTTY

Si vous avez installé le package de téléchargement de PuTTY et généré précédemment un fichier de clé privée PuTTY (.ppk), vous pouvez vous connecter à une machine virtuelle Linux avec PuTTY.If you installed the PuTTY download package and previously generated a PuTTY private key (.ppk) file, you can connect to a Linux VM with PuTTY.

  1. Démarrez PuTTY.Start PuTTy.

  2. Renseignez le nom d’hôte ou l’adresse IP de votre machine virtuelle à partir du portail Azure :Fill in the host name or IP address of your VM from the Azure portal:

    Ouvrir une nouvelle connexion PuTTY

  3. Sélectionnez la catégorie Connexion > SSH > Auth.Select the Connection > SSH > Auth category. Recherchez et sélectionnez votre clé privée PuTTY (fichier .ppk) :Browse to and select your PuTTY private key (.ppk file):

    Sélectionner votre clé privée PuTTY pour l’authentification

  4. Cliquez sur Ouvrir pour vous connecter à votre machine virtuelle.Click Open to connect to your VM.

Étapes suivantesNext steps