Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Linux
Windows
En este documento, se describe cómo crear un par de claves SSH para instancias de máquina virtual (VM) en Compute Engine.
Antes de comenzar
Si aún no lo hiciste, configura la autenticación.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las APIs de Google Cloud .
Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
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
Instala Google Cloud CLI.
Después de la instalación,
inicializa Google Cloud CLI ejecutando el siguiente comando:
Si deseas obtener más información, consulta Autentica para usar REST en la Google Cloud documentación de autenticación.
Crea un par de claves SSH
Si te conectas a las VMs con la consola de Google Cloud o Google Cloud CLI, Compute Engine crea claves SSH por ti. Para obtener más información sobre cómo Compute Engine configura y almacena claves, consulta Información sobre las conexiones SSH.
Si te conectas a las VM mediante OpenSSH o herramientas de terceros, debes agregar una clave a tu VM antes de conectarte. Si no tienes una clave SSH, debes crear una. Las VM aceptan los formatos de clave que se enumeran en el archivo sshd_config.
Linux y macOS
En estaciones de trabajo de Linux y macOS, usa la utilidad de ssh-keygen para crear un nuevo par de claves SSH. En el siguiente ejemplo, se crea un par de claves RSA.
Abre una terminal y usa el comando ssh-keygen con la marca -C para crear un nuevo par de claves SSH.
KEY_FILENAME: el nombre de tu archivo de claves SSH.
Por ejemplo, un nombre de archivo de my-ssh-key genera un archivo de clave privada llamado my-ssh-key y un archivo de clave pública llamado my-ssh-key.pub.
USERNAME: tu nombre de usuario en la VM. Por ejemplo,
cloudysanfrancisco o cloudysanfrancisco_gmail_com.
Para las VM de Linux, USERNAME no puede ser root, a menos que configures tu VM para permitir el acceso raíz. Para obtener más información, consulta Conéctate a VMs como usuario raíz.
Para las VM de Windows que usan Active Directory (AD), el nombre de usuario debe estar agregado al dominio de AD, en el formato DOMAIN\. Por ejemplo, el usuario cloudysanfrancisco dentro del AD ad.example.com tiene un USERNAME de example\cloudysanfrancisco.
ssh-keygen guarda el archivo de claves privadas en ~/.ssh/KEY_FILENAME y el archivo de claves públicas en ~/.ssh/KEY_FILENAME.pub.
Una clave pública para el usuario cloudysanfrancisco es similar a la siguiente:
En estaciones de trabajo con versión 10 o posterior de Windows, usa la utilidad ssh-keygen para crear un nuevo par de claves SSH. En el siguiente ejemplo, se crea un par de claves RSA.
Abre el símbolo del sistema y usa el comando ssh-keygen con la marca -C para crear un nuevo par de claves SSH.
WINDOWS_USER: Es tu nombre de usuario en la máquina de Windows.
KEY_FILENAME: el nombre de tu archivo de claves SSH.
Por ejemplo, un nombre de archivo de my-ssh-key genera un archivo de clave privada llamado my-ssh-key y un archivo de clave pública llamado my-ssh-key.pub.
USERNAME: tu nombre de usuario en la VM. Por ejemplo,
cloudysanfrancisco o cloudysanfrancisco_gmail_com.
Para las VM de Linux, USERNAME no puede ser root, a menos que configures tu VM para permitir el acceso raíz. Para obtener más información, consulta Conéctate a VMs como usuario raíz.
Para las VM de Windows que usan Active Directory (AD), el nombre de usuario debe estar agregado al dominio de AD, en el formato DOMAIN\. Por ejemplo, el usuario cloudysanfrancisco dentro del AD ad.example.com tiene un USERNAME de example\cloudysanfrancisco.
ssh-keygen guarda el archivo de claves privadas en C:\Users\WINDOWS_USER\.ssh\KEY_FILENAME y el archivo de claves públicas en C:\Users\WINDOWS_USER\.ssh\KEY_FILENAME.pub.
Una clave pública para el usuario cloudysanfrancisco es similar a la siguiente:
En las estaciones de trabajo con Windows 8 o versiones anteriores, usa la herramienta PuTTYgen para crear un nuevo par de claves SSH. En el siguiente ejemplo, se crea un par de claves RSA.
Cantidad de bits en una clave generada: 2048 o más
Haz clic en Generate y sigue las instrucciones en pantalla.
La herramienta muestra el valor de la clave pública.
En la sección Comentario de clave, reemplaza el texto prepropagado por el nombre de usuario. Por ejemplo, cloudysanfrancisco o
cloudysanfrancisco_gmail_com.
En las VM de Linux, el Comentario de clave no puede ser root, a menos que configures la VM para permitir el acceso raíz. Para obtener más información, consulta Conéctate a VMs como usuario raíz.
Para las VM de Windows que usan Active Directory (AD), se debe agregar el comentario de la clave al dominio de AD en el formato DOMAIN\. Por ejemplo, el usuario cloudysanfrancisco dentro del AD de ad.example.com tiene un comentario de clave de example\cloudysanfrancisco.
Opcional: Ingresa una Frase de contraseña de clave para protegerla con una contraseña.
Haz clic en Save private key para elegir una ubicación en la que quieras guardar la clave privada.
PuTTYgen escribe la clave privada en un archivo con una extensión .ppk.
Haz clic en Guardar clave pública para elegir una ubicación en la que quieras guardar tu clave pública. Mantén abierta la ventana de PuTTYgen.
Copia el valor del campo Clave pública for pegar en el archivo authorized_keys de OpenSSH.
Abre el archivo de clave pública. La clave pública tiene un formato similar al siguiente:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "USERNAME"
KEY_VALUE
---- END SSH2 PUBLIC KEY ----
Reemplaza todo el contenido del archivo de clave pública por el valor que copiaste del campo Clave pública for pegar en el archivo authorized_keys de OpenSSH, de modo que tu archivo de clave pública coincida con el formato siguiente:
KEY_VALUEUSERNAME
Una clave pública para el usuario cloudysanfrancisco es similar a la siguiente:
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-08-18 (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,["Linux 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- 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 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\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\nLinux 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\nWindows 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\nWindows 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- 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"]]