Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Linux
Windows
Ce document explique comment créer une paire de clés SSH pour les instances de machines virtuelles (VM) Compute Engine.
Avant de commencer
Si ce n'est pas déjà fait, configurez l'authentification.
L'authentification valide votre identité pour accéder aux services et aux API Google Cloud . Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and
APIs, you don't need to set up authentication.
gcloud
Installez la Google Cloud CLI.
Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :
Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.
Installez la Google Cloud CLI.
Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .
Créer une paire de clés SSH
Si vous vous connectez à des VM à l'aide de la console Google Cloud ou de Google Cloud CLI, Compute Engine crée des clés SSH en votre nom. Pour en savoir plus sur la manière dont Compute Engine configure et stocke les clés, consultez À propos des connexions SSH.
Si vous vous connectez à des VM à l'aide d'outils tiers ou d'OpenSSH, vous devez ajouter une clé à votre VM pour pouvoir vous connecter. Si vous ne possédez pas de clé SSH, vous devez en créer une. Les VM acceptent les formats de clé répertoriés dans le fichier sshd_config.
Linux et macOS
Sur les stations de travail Linux et macOS, utilisez l'utilitaire ssh-keygen pour créer une paire de clés SSH. L'exemple suivant permet de créer une paire de clés RSA.
Ouvrez un terminal et utilisez la commande ssh-keygen avec l'option -C pour créer une nouvelle paire de clés SSH.
Par exemple, le nom de fichier my-ssh-key génère un fichier de clé privée nommé my-ssh-key et un fichier de clé publique nommé my-ssh-key.pub.
USERNAME : votre nom d'utilisateur sur la VM. Par exemple, cloudysanfrancisco ou cloudysanfrancisco_gmail_com.
Pour les VM Linux, USERNAME ne peut pas être défini sur root, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez Se connecter à des VM en tant qu'utilisateur racine.
Pour les VM Windows qui utilisent Active Directory (AD), le nom d'utilisateur doit être précédé du domaine AD, au format DOMAIN\. Par exemple, l'utilisateur cloudysanfrancisco du domaine AD ad.example.com possède un USERNAME de example\cloudysanfrancisco.
ssh-keygen enregistre votre fichier de clé privée sous ~/.ssh/KEY_FILENAME et votre fichier de clé publique sous ~/.ssh/KEY_FILENAME.pub.
Une clé publique pour l'utilisateur cloudysanfrancisco ressemble à ce qui suit :
Sur les stations de travail équipées de Windows 10 ou d'une version ultérieure, utilisez l'utilitaire ssh-keygen pour créer une paire de clés SSH. L'exemple suivant permet de créer une paire de clés RSA.
Ouvrez l'invite de commande et utilisez la commande ssh-keygen avec l'option -C pour créer une paire de clés SSH.
WINDOWS_USER : votre nom d'utilisateur sur la machine Windows
KEY_FILENAME : nom de votre fichier de clé SSH.
Par exemple, le nom de fichier my-ssh-key génère un fichier de clé privée nommé my-ssh-key et un fichier de clé publique nommé my-ssh-key.pub.
USERNAME : votre nom d'utilisateur sur la VM. Par exemple, cloudysanfrancisco ou cloudysanfrancisco_gmail_com.
Pour les VM Linux, USERNAME ne peut pas être défini sur root, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez Se connecter à des VM en tant qu'utilisateur racine.
Pour les VM Windows qui utilisent Active Directory (AD), le nom d'utilisateur doit être précédé du domaine AD, au format DOMAIN\. Par exemple, l'utilisateur cloudysanfrancisco du domaine AD ad.example.com possède un USERNAME de example\cloudysanfrancisco.
ssh-keygen enregistre votre fichier de clé privée sous C:\Users\WINDOWS_USER\.ssh\KEY_FILENAME et votre fichier de clé publique sous C:\Users\WINDOWS_USER\.ssh\KEY_FILENAME.pub.
Une clé publique pour l'utilisateur cloudysanfrancisco ressemble à ce qui suit :
Sur les postes de travail utilisant Windows 8 ou une version antérieure, utilisez l'outil PuTTYgen pour créer une paire de clés SSH. L'exemple suivant permet de créer une paire de clés RSA.
Sous Paramètres, spécifiez les éléments suivants :
Type de clé à générer : RSA
Nombre de bits dans une clé générée : 2048 ou plus
Cliquez sur Générer et suivez les instructions à l'écran.
L'outil affiche la valeur de la clé publique.
Dans la section Commentaire sur la clé, remplacez le texte prérempli par votre nom d'utilisateur. Par exemple, cloudysanfrancisco ou cloudysanfrancisco_gmail_com.
Pour les VM Linux, le commentaire de clé ne peut pas être root, sauf si vous configurez votre VM pour autoriser la connexion racine. Pour en savoir plus, consultez Se connecter à des VM en tant qu'utilisateur racine.
Pour les VM Windows qui utilisent Active Directory (AD), le commentaire de clé doit être précédé du domaine AD, au format DOMAIN\. Par exemple, l'utilisateur cloudysanfrancisco du domaine AD ad.example.com possède un commentaire de cléexample\cloudysanfrancisco.
Facultatif : saisissez une phrase secrète de clé pour protéger votre clé par mot de passe.
Cliquez sur Enregistrer la clé privée pour choisir un emplacement où enregistrer la clé privée.
PuTTYgen écrit la clé privée dans un fichier avec une extension .ppk.
Cliquez sur Enregistrer la clé publique pour choisir l'emplacement où enregistrer la clé publique. Laissez la fenêtre PuTTYgen ouverte.
Copiez le texte du champ Clé publique à coller dans le fichier "OpenSSH authorized_keys".
Ouvrez le fichier de clé publique. La clé publique a un format semblable à celui-ci :
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "USERNAME"
KEY_VALUE
---- END SSH2 PUBLIC KEY ----
Remplacez l'intégralité du contenu du fichier de clé publique par la valeur que vous avez copiée depuis le champ Clé publique à coller dans le fichier OpenSSH authorized_keys, afin que votre fichier de clé publique corresponde au format suivant :
KEY_VALUEUSERNAME
Une clé publique pour l'utilisateur cloudysanfrancisco ressemble à ce qui suit :
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (UTC)."],[[["\u003cp\u003eThis document guides users on creating SSH key pairs for Compute Engine virtual machines (VMs) for connections outside the Google Cloud console or CLI.\u003c/p\u003e\n"],["\u003cp\u003eAuthentication setup is required for accessing Google Cloud services and APIs, which can be done through the Google Cloud CLI or REST API.\u003c/p\u003e\n"],["\u003cp\u003eFor Linux and macOS, and Windows 10 or later, the \u003ccode\u003essh-keygen\u003c/code\u003e utility is used to generate SSH key pairs, specifying the key file name and username for the VM.\u003c/p\u003e\n"],["\u003cp\u003eWindows 8 or earlier users should use PuTTYgen, downloading \u003ccode\u003eputtygen.exe\u003c/code\u003e, selecting RSA key type, and setting key parameters before saving the private and public keys.\u003c/p\u003e\n"],["\u003cp\u003eThe public key file's content must be modified to match the format "KEY_VALUE USERNAME," and users can optionally set a key passphrase for added security.\u003c/p\u003e\n"]]],[],null,["# Create SSH keys\n\nLinux Windows\n\n*** ** * ** ***\n\nThis document describes how to create an SSH key pair for Compute Engine\nvirtual machine (VM) instances.\n\nBefore you begin\n----------------\n\n- If you haven't already, set up [authentication](/compute/docs/authentication). Authentication verifies your identity for access to Google Cloud services and APIs. To run code or samples from a local development environment, you can authenticate to Compute Engine by selecting one of the following options:\n\n Select the tab for how you plan to use the samples on this page: \n\n ### Console\n\n\n When you use the Google Cloud console to access Google Cloud services and\n APIs, you don't need to set up authentication.\n\n ### gcloud\n\n 1.\n [Install](/sdk/docs/install) the Google Cloud CLI.\n\n After installation,\n [initialize](/sdk/docs/initializing) the Google Cloud CLI by running the following command:\n\n ```bash\n gcloud init\n ```\n\n\n If you're using an external identity provider (IdP), you must first\n [sign in to the gcloud CLI with your federated identity](/iam/docs/workforce-log-in-gcloud).\n | **Note:** If you installed the gcloud CLI previously, make sure you have the latest version by running `gcloud components update`.\n 2. [Set a default region and zone](/compute/docs/gcloud-compute#set_default_zone_and_region_in_your_local_client).\n\n ### REST\n\n\n To use the REST API samples on this page in a local development environment, you use the\n credentials you provide to the gcloud CLI.\n 1. [Install](/sdk/docs/install) the Google Cloud CLI. After installation, [initialize](/sdk/docs/initializing) the Google Cloud CLI by running the following command: \n\n ```bash\n gcloud init\n ```\n 2. If you're using an external identity provider (IdP), you must first [sign in to the gcloud CLI with your federated identity](/iam/docs/workforce-log-in-gcloud).\n\n\n For more information, see\n [Authenticate for using REST](/docs/authentication/rest)\n in the Google Cloud authentication documentation.\n\nCreate an SSH key pair\n----------------------\n\nIf you connect to VMs using the Google Cloud console or the\nGoogle Cloud CLI, Compute Engine creates SSH keys on your behalf. For\nmore information on how Compute Engine configures and stores keys, see\n[About SSH connections](/compute/docs/instances/ssh).\n\nIf you connect to VMs using third party tools or OpenSSH, you need to\nadd a key to your VM before you can connect. If you don't have an SSH key,\nyou must create one. VMs accept the key formats listed in the `sshd_config`\nfile. \n\n### Linux and macOS\n\nOn Linux and macOS workstations, use the\n[`ssh-keygen` utility](https://man.openbsd.org/ssh-keygen)\nto create a new SSH key pair. The following example creates an RSA key pair.\n\nOpen a terminal and use the `ssh-keygen` command with the `-C` flag to\ncreate a new SSH key pair. \n\n```\nssh-keygen -t rsa -f ~/.ssh/KEY_FILENAME -C USERNAME\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eKEY_FILENAME\u003c/var\u003e: the name for your SSH key file.\n\n For example, a filename of `my-ssh-key` generates a private key file named\n `my-ssh-key` and a public key file named `my-ssh-key.pub`.\n- \u003cvar translate=\"no\"\u003eUSERNAME\u003c/var\u003e: your username on the VM. For example,\n `cloudysanfrancisco`, or `cloudysanfrancisco_gmail_com`.\n\n For Linux VMs, the \u003cvar translate=\"no\"\u003eUSERNAME\u003c/var\u003e can't be `root`,\n unless you configure your VM to allow root login. For more information,\n see [Connect to VMs as the root user](/compute/docs/connect/root-ssh).\n\n For Windows VMs that use Active Directory (AD), the username must be\n prepended with the AD domain, in the format of\n \u003cvar translate=\"no\"\u003eDOMAIN\u003c/var\u003e`\\`. For example, the user\n `cloudysanfrancisco` within the `ad.example.com` AD has a\n \u003cvar translate=\"no\"\u003eUSERNAME\u003c/var\u003e of `example\\cloudysanfrancisco`.\n\n`ssh-keygen` saves your private key file to\n`~/.ssh/`\u003cvar translate=\"no\"\u003eKEY_FILENAME\u003c/var\u003e and your public key file to\n`~/.ssh/`\u003cvar translate=\"no\"\u003eKEY_FILENAME\u003c/var\u003e`.pub`.\n\nA public key for the user `cloudysanfrancisco` looks similar to the\nfollowing: \n\n```\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF... cloudysanfrancisco\n```\n\n### Windows 10 or later\n\nOn workstations with Windows version 10 or later, use the\n[`ssh-keygen` utility](https://man.openbsd.org/ssh-keygen)\nto create a new SSH key pair. The following example creates an RSA key pair.\n\nOpen Command Prompt and use the `ssh-keygen` command with the `-C` flag to\ncreate a new SSH key pair. \n\n```\nssh-keygen -t rsa -f C:\\Users\\WINDOWS_USER\\.ssh\\KEY_FILENAME -C USERNAME\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eWINDOWS_USER\u003c/var\u003e: your username on the Windows\n machine.\n\n- \u003cvar translate=\"no\"\u003eKEY_FILENAME\u003c/var\u003e: the name for your SSH key file.\n\n For example, a filename of `my-ssh-key` generates a private key file named\n `my-ssh-key` and a public key file named `my-ssh-key.pub`.\n- \u003cvar translate=\"no\"\u003eUSERNAME\u003c/var\u003e: your username on the VM. For example,\n `cloudysanfrancisco`, or `cloudysanfrancisco_gmail_com`.\n\n For Linux VMs, the \u003cvar translate=\"no\"\u003eUSERNAME\u003c/var\u003e can't be `root`,\n unless you configure your VM to allow root login. For more information,\n see [Connect to VMs as the root user](/compute/docs/connect/root-ssh).\n\n For Windows VMs that use Active Directory (AD), the username must be\n prepended with the AD domain, in the format of\n \u003cvar translate=\"no\"\u003eDOMAIN\u003c/var\u003e`\\`. For example, the user\n `cloudysanfrancisco` within the `ad.example.com` AD has a\n \u003cvar translate=\"no\"\u003eUSERNAME\u003c/var\u003e of `example\\cloudysanfrancisco`.\n\n`ssh-keygen` saves your private key file to\n`C:\\Users\\`\u003cvar translate=\"no\"\u003eWINDOWS_USER\u003c/var\u003e`\\.ssh\\`\u003cvar translate=\"no\"\u003eKEY_FILENAME\u003c/var\u003e\nand your public key file to\n`C:\\Users\\`\u003cvar translate=\"no\"\u003eWINDOWS_USER\u003c/var\u003e`\\.ssh\\`\u003cvar translate=\"no\"\u003eKEY_FILENAME\u003c/var\u003e`.pub`.\n\nA public key for the user `cloudysanfrancisco` looks similar to the\nfollowing: \n\n```\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF... cloudysanfrancisco\n```\n\n### Windows 8 or earlier\n\nOn workstations with Windows version 8 or earlier, use the PuTTYgen tool to\ncreate a new SSH key pair. The following example creates an RSA key pair.\n\n1. [Download `puttygen.exe`](http://www.chiark.greenend.org.uk/%7Esgtatham/putty/download.html)\n if you haven't already.\n\n2. Open PuTTYgen.\n\n3. Under **Parameters** specify the following:\n\n - **Type of key to generate** : `RSA`\n - **Number of bits in a generated key** : `2048` or more\n4. Click **Generate** and follow the on-screen instructions.\n\n The tool displays the public key value.\n5. In the **Key comment** section, replace the pre-populated text with your\n username. For example, `cloudysanfrancisco`, or\n `cloudysanfrancisco_gmail_com`.\n\n For Linux VMs, the **Key comment** can't be `root`, unless you configure\n your VM to allow root login. For more information,\n see [Connect to VMs as the root user](/compute/docs/connect/root-ssh).\n\n For Windows VMs that use Active Directory (AD), the **Key comment** must\n be prepended with the AD domain, in the format of\n \u003cvar translate=\"no\"\u003eDOMAIN\u003c/var\u003e`\\`. For example, the user\n `cloudysanfrancisco` within the `ad.example.com` AD has a **Key comment**\n of `example\\cloudysanfrancisco`.\n6. Optional: enter a **Key passphrase** to password-protect your key.\n\n7. Click **Save private key** to choose a location to save the private key\n to.\n\n PuTTYgen writes the private key to a file with a `.ppk` extension.\n8. Click **Save public key** to choose a location to save your public key\n to. Keep the PuTTYgen window open.\n\n9. Copy the text from the **Public key for pasting into OpenSSH\n authorized_keys file** field.\n\n10. Open the public key file. The public key has a format similar to the\n following:\n\n ```\n ---- BEGIN SSH2 PUBLIC KEY ----\n Comment: \"USERNAME\"\n KEY_VALUE\n ---- END SSH2 PUBLIC KEY ----\n ```\n11. Replace the entire contents of the public key file with the value you\n copied from the **Public key for pasting into OpenSSH authorized_keys\n file** field, so that your public key file matches the following format:\n\n ```\n KEY_VALUE USERNAME\n ```\n\nA public key for the user `cloudysanfrancisco` looks similar to the\nfollowing: \n\n```\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF... cloudysanfrancisco\n```\n\nWhat's next?\n------------\n\n- Learn how to [Add SSH keys to VMs](/compute/docs/connect/add-ssh-keys)\n- Learn [About SSH connections](/compute/docs/instances/ssh) work on Compute Engine"]]