Étapes rapides : Créer et utiliser une paire de clés publique et privée SSH pour les machines virtuelles Linux dans AzureQuick steps: Create and use an SSH public-private key pair for Linux VMs in Azure

Avec une paire de clés SSH (secure shell), vous pouvez créer des machines virtuelles sur Azure qui utilisent par défaut des clés SSH pour l’authentification, éliminant ainsi la nécessité de recourir aux mots de passe pour la connexion.With a secure shell (SSH) key pair, you can create virtual machines (VMs) in Azure that use SSH keys for authentication, eliminating the need for passwords to sign in. Cet article décrit comment générer et utiliser rapidement une paire de clés publique et privée SSH pour des machines virtuelles Linux.This article shows you how to quickly generate and use an SSH public-private key file pair for Linux VMs. Vous pouvez effectuer ces étapes avec Azure Cloud Shell, un hôte Linux ou macOS, le sous-système Windows pour Linux ou d’autres outils qui prennent en charge OpenSSH.You can complete these steps with the Azure Cloud Shell, a macOS or Linux host, the Windows Subsystem for Linux, and other tools that support OpenSSH.

Notes

Les machines virtuelles créées à l’aide de clés SSH sont par défaut configurées avec les mots de passe désactivés, ce qui accroît grandement la difficulté des attaques par force brute visant à deviner les mots de passe.VMs created using SSH keys are by default configured with passwords disabled, which greatly increases the difficulty of brute-force guessing attacks.

Pour obtenir plus d’informations et des exemples, consultez Étapes détaillées pour créer des paires de clés SSH.For more background and examples, see Detailed steps to create SSH key pairs.

Pour découvrir d’autres méthodes permettant de générer et d’utiliser des clés SSH sur un ordinateur Windows, consultez Utilisation de clés SSH avec Windows sur Azure.For additional ways to generate and use SSH keys on a Windows computer, see How to use SSH keys with Windows on Azure.

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.

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

Utilisez la commande ssh-keygen pour générer des fichiers de clés SSH publiques et privées.Use the ssh-keygen command to generate SSH public and private key files. Par défaut, ces fichiers sont créés dans le répertoire ~/.ssh.By default, these files are created in the ~/.ssh directory. Vous pouvez spécifier un autre emplacement et un mot de passe facultatif (phrase secrète) pour accéder au fichier de clé privée.You can specify a different location, and an optional password (passphrase) to access the private key file. Si une paire de clés SSH portant le même nom existe dans l’emplacement choisi, les fichiers sont remplacés.If an SSH key pair with the same name exists in the given location, those files are overwritten.

La commande suivante crée une paire de clés SSH à l’aide du chiffrement RSA avec une longueur de 2 048 bits :The following command creates an SSH key pair using RSA encryption and a bit length of 2048:

ssh-keygen -t rsa -b 2048

Si vous utilisez Azure CLI pour créer votre machine virtuelle avec la commande az vm create, vous pouvez éventuellement générer des fichiers de clés SSH publiques et privées à l’aide de l’option --generate-ssh-keys.If you use the Azure CLI to create your VM with the az vm create command, you can optionally generate SSH public and private key files using the --generate-ssh-keys option. Les fichiers de clés sont stockés dans le répertoire ~/.ssh, sauf indication contraire avec l’option --ssh-dest-key-path.The key files are stored in the ~/.ssh directory unless specified otherwise with the --ssh-dest-key-path option. L’option --generate-ssh-keys ne remplace pas les fichiers de clés existants, mais retourne une erreur à la place.The --generate-ssh-keys option will not overwrite existing key files, instead returning an error. Dans la commande suivante, remplacez VMname et RGname par vos propres valeurs :In the following command, replace VMname and RGname with your own values:

az vm create --name VMname --resource-group RGname --generate-ssh-keys 

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, spécifiez votre clé publique SSH quand vous créez la machine virtuelle à l’aide du portail Azure, d’Azure CLI, de modèles Azure Resource Manager ou d’autres méthodes :To create a Linux VM that uses SSH keys for authentication, specify your SSH public key when creating the VM using the Azure portal, Azure CLI, Azure Resource Manager templates, or other methods:

Si vous n’êtes pas familiarisé avec le format d’une clé publique SSH, vous pouvez afficher votre clé publique à l’aide de la commande cat suivante, en remplaçant ~/.ssh/id_rsa.pub par le chemin et le nom de votre propre fichier de clé publique, si nécessaire :If you're not familiar with the format of an SSH public key, you can display your public key with the following cat command, replacing ~/.ssh/id_rsa.pub with the path and filename of your own public key file if needed:

cat ~/.ssh/id_rsa.pub

Exemple de valeur de clé publique type :A typical public key value looks like this example:

ssh-rsa AAAAB3NzaC1yc2EAABADAQABAAACAQC1/KanayNr+Q7ogR5mKnGpKWRBQU7F3Jjhn7utdf7Z2iUFykaYx+MInSnT3XdnBRS8KhC0IP8ptbngIaNOWd6zM8hB6UrcRTlTpwk/SuGMw1Vb40xlEFphBkVEUgBolOoANIEXriAMvlDMZsgvnMFiQ12tD/u14cxy1WNEMAftey/vX3Fgp2vEq4zHXEliY/sFZLJUJzcRUI0MOfHXAuCjg/qyqqbIuTDFyfg8k0JTtyGFEMQhbXKcuP2yGx1uw0ice62LRzr8w0mszftXyMik1PnshRXbmE2xgINYg5xo/ra3mq2imwtOKJpfdtFoMiKhJmSNHBSkK7vFTeYgg0v2cQ2+vL38lcIFX4Oh+QCzvNF/AXoDVlQtVtSqfQxRVG79Zqio5p12gHFktlfV7reCBvVIhyxc2LlYUkrq4DHzkxNY5c9OGSHXSle9YsO3F1J5ip18f6gPq4xFmo6dVoJodZm9N0YMKCkZ4k1qJDESsJBk2ujDPmQQeMjJX3FnDXYYB182ZCGQzXfzlPDC29cWVgDZEXNHuYrOLmJTmYtLZ4WkdUhLLlt5XsdoKWqlWpbegyYtGZgeZNRtOOdN6ybOPJqmYFd2qRtb4sYPniGJDOGhx4VodXAjT09omhQJpE6wlZbRWDvKC55R2d/CSPHJscEiuudb+1SG2uA/oik/WQ== username@domainname

Si vous copiez et collez le contenu du fichier de clé publique pour l’utiliser dans le portail Azure ou dans un modèle Resource Manager, veillez à ne pas copier pas les espaces blancs de fin.If you copy and paste the contents of the public key file to use in the Azure portal or a Resource Manager template, make sure you don't copy any trailing whitespace. Pour copier une clé publique dans macOS, vous pouvez diriger le fichier de clé publique vers pbcopy.To copy a public key in macOS, you can pipe the public key file to pbcopy. De même, sous Linux, vous pouvez diriger le fichier de clé publique vers des programmes comme xclip.Similarly in Linux, you can pipe the public key file to programs such as xclip.

La clé publique que vous placez sur votre machine virtuelle Linux dans Azure est stockée par défaut dans ~/.ssh/id_rsa.pub, sauf si vous avez spécifié un autre emplacement quand vous avez créé la paire de clés.The public key that you place on your Linux VM in Azure is by default stored in ~/.ssh/id_rsa.pub, unless you specified a different location when you created the key pair. Pour utiliser Azure CLI 2.0 pour créer votre machine virtuelle avec une clé publique existante, spécifiez la valeur et éventuellement l’emplacement de cette clé publique à l’aide de la commande az vm create avec l’option --ssh-key-value.To use the Azure CLI 2.0 to create your VM with an existing public key, specify the value and optionally the location of this public key using the az vm create command with the --ssh-key-value option. Dans la commande suivante, remplacez VMname, RGname et keyFile par vos propres valeurs :In the following command, replace VMname, RGname, and keyFile with your own values:

az vm create --name VMname --resource-group RGname --ssh-key-value @keyFile

Se connecter avec SSH à votre machine virtuelleSSH into your VM

Une fois la clé publique déployée sur votre machine virtuelle Azure et la clé privée sur votre système local, connectez-vous avec SSH à 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 into your VM using the IP address or DNS name of your VM. Dans la commande suivante, remplacez azureuser et myvm.westus.cloudapp.azure.com par le nom d’utilisateur de l’administrateur et le nom de domaine complet (ou l’adresse IP) :In the following command, replace azureuser and myvm.westus.cloudapp.azure.com with the administrator user name and the fully qualified domain name (or IP address):

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

Si vous avez spécifié une phrase secrète quand vous avez créé votre paire de clés, entrez-la quand vous y êtes invité pendant le processus de connexion.If you specified a passphrase when you created your key pair, enter that passphrase when prompted during the login process. La machine virtuelle est ajoutée à votre fichier ~/.ssh/known_hosts et vous n’avez pas à vous connecter à nouveau tant que la clé publique sur votre machine virtuelle Azure n’est pas modifiée ou que le nom de serveur n’est pas supprimé du fichier ~/.ssh/known_hosts.The VM is added to your ~/.ssh/known_hosts file, and you won't be asked to connect again until either the public key on your Azure VM changes or the server name is removed from ~/.ssh/known_hosts.

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.

Étapes suivantesNext steps