Este documento describe cómo agregar claves SSH a instancias de máquinas virtuales (VM) que usan inicio de sesión en el sistema operativo y máquinas virtuales que usan claves SSH basadas en metadatos . Si usted o el administrador de su organización no han habilitado el inicio de sesión en el sistema operativo, sus máquinas virtuales utilizan claves SSH basadas en metadatos.
Antes de comenzar
- Para obtener información sobre cómo administrar el acceso a tus VM de Compute Engine, consulta Elegir un método de acceso .
- Si aún no lo ha hecho, cree un par de claves SSH .
- Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. 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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Para agregar una clave SSH pública a tu cuenta, usa el comando
gcloud compute os-login ssh-keys add
:gcloud compute os-login ssh-keys add \ --key-file=KEY_FILE_PATH \ --project=PROJECT \ --ttl=EXPIRE_TIME
Reemplace lo siguiente:
-
KEY_FILE_PATH
: la ruta a la clave SSH pública en su estación de trabajo. La clave debe utilizar el formatopublic-openssh
-
PROJECT
: Opcional: un proyecto en el que desea utilizar su clave SSH. Especifica este campo para usar tu clave SSH en un proyecto fuera de tu organización o si no eres miembro de una organización de Cloud Identity. EXPIRE_TIME
: Opcional: el tiempo de vencimiento de la clave SSHPor ejemplo, si especifica
30m
la clave SSH caduca después de 30 minutos.Esta bandera utiliza las siguientes unidades:
-
s
por segundos -
m
por minutos -
h
por horas -
d
por días
-
-
-
ACCOUNT_EMAIL
: la dirección de correo electrónico asociada a tu cuenta -
SSH_KEY
: la clave pública que desea agregar a la cuenta -
EXPIRATION_TIMESTAMP
: el tiempo de vencimiento de la clave, en microsegundos desde la época (1 segundo = 10 6 microsegundos) En la consola de Google Cloud, vaya a la página Metadatos .
Haga clic en la pestaña Claves SSH .
Haga clic en Editar .
Haga clic en Agregar elemento .
En el campo de clave SSH que se abre, agregue su clave SSH pública. La clave debe estar en uno de los siguientes formatos:
- Formato para una clave sin tiempo de vencimiento:
KEY_VALUE USERNAME
- Formato para una clave con tiempo de vencimiento:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Reemplace lo siguiente:
-
KEY_VALUE
: el valor de la clave SSH pública -
USERNAME
: su nombre de usuario. Por ejemplo,cloudysanfrancisco
ocloudysanfrancisco_gmail_com
.Para las máquinas virtuales Linux, el
USERNAME
no puede serroot
, a menos que configure su máquina virtual para permitir el inicio de sesión como root. Para obtener más información, consulte Conexión a máquinas virtuales Linux como usuario raíz .Para máquinas virtuales Windows que usan Active Directory (AD), el nombre de usuario debe ir precedido del dominio AD, en el formato
DOMAIN \
. Por ejemplo, el usuariocloudysanfrancisco
dentro del ADad.example.com
tiene unUSERNAME
deexample\cloudysanfrancisco
. -
EXPIRE_TIME
: la hora en que caduca la clave, en formato ISO 8601 . Por ejemplo:2021-12-04T20:12:00+0000
- Formato para una clave sin tiempo de vencimiento:
Haga clic en Guardar .
Si hay claves SSH existentes en los metadatos del proyecto, debes volver a agregarlas a los metadatos del proyecto cada vez que agregues una nueva clave SSH mediante la CLI de gcloud. Si no vuelve a agregar las claves existentes, agregar una nueva clave borra las claves existentes.
Para agregar una clave SSH pública a los metadatos del proyecto mediante la CLI de gcloud, haz lo siguiente:
Si su proyecto ya tiene claves SSH públicas para todo el proyecto, consígalas de los metadatos y agréguelas a un archivo nuevo:
Ejecuta el comando
gcloud compute project-info describe
para obtener las claves SSH para el proyecto:gcloud compute project-info describe \ --format="value(commonInstanceMetadata[items][ssh-keys])"
El resultado es similar al siguiente:
username:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ... username:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ...
Copie el valor de metadatos
ssh-keys
.Cree y abra un nuevo archivo de texto en su estación de trabajo.
En el archivo, pegue la lista de claves que acaba de copiar.
Agregue su nueva clave al final de la lista, en uno de los siguientes formatos:
- Formato para una clave sin tiempo de vencimiento:
USERNAME:KEY_VALUE
- Formato para una clave con tiempo de vencimiento:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Reemplace lo siguiente:
-
KEY_VALUE
: el valor de la clave SSH pública -
USERNAME
: su nombre de usuario. Por ejemplo,cloudysanfrancisco
ocloudysanfrancisco_gmail_com
.Para las máquinas virtuales Linux, el
USERNAME
no puede serroot
, a menos que configure su máquina virtual para permitir el inicio de sesión como root. Para obtener más información, consulte Conexión a instancias como usuario raíz .Para máquinas virtuales Windows que usan Active Directory (AD), el nombre de usuario debe ir precedido del dominio AD, en el formato
DOMAIN \
. Por ejemplo, el usuariocloudysanfrancisco
dentro del ADad.example.com
tiene unUSERNAME
deexample\cloudysanfrancisco
. -
EXPIRE_TIME
: la hora en que caduca la clave, en formato ISO 8601 . Por ejemplo:2021-12-04T20:12:00+0000
- Formato para una clave sin tiempo de vencimiento:
Guarde y cierre el archivo.
Ejecuta el comando
gcloud compute project-info add-metadata
para establecer el valor dessh-keys
para todo el proyecto:gcloud compute project-info add-metadata --metadata-from-file=ssh-keys=KEY_FILE
Reemplace
KEY_FILE
con uno de los siguientes:- La ruta al archivo que creó en el paso anterior, si el proyecto tenía claves SSH existentes.
- La ruta a su nuevo archivo de clave SSH pública, si el proyecto no tenía claves SSH existentes
Obtenga los valores de
fingerprint
yssh-keys
de los metadatos utilizando el métodoprojects.get
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
Reemplace
PROJECT_ID
con su ID de proyecto.La respuesta es similar a la siguiente:
... "fingerprint": "utgYE_XWtE8=", "items": [ { "key": "ssh-keys", "value": "cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF...\nbaklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8... google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"}" } ] ...
Agregue el nuevo valor
ssh-keys
utilizando el métodoprojects.setCommonInstanceMetadata
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS\nNEW_SSH_KEY" } ] "fingerprint": "FINGERPRINT" }
Reemplace lo siguiente:
-
PROJECT_ID
: ID de tu proyecto -
EXISTING_SSH_KEYS
: el valor de la clavessh-keys
de la respuesta de la solicitudprojects.get
-
FINGERPRINT
: el valor de lafingerprint
de la respuesta de la solicitud deprojects.get
NEW_SSH_KEY
: la nueva clave SSH, en uno de los siguientes formatos:- Formato para una clave sin tiempo de vencimiento:
USERNAME:KEY_VALUE
- Formato para una clave con tiempo de vencimiento:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Reemplace lo siguiente:
-
KEY_VALUE
: el valor de la clave SSH pública -
USERNAME
: su nombre de usuario. Por ejemplo,cloudysanfrancisco
ocloudysanfrancisco_gmail_com
.Para las máquinas virtuales Linux, el
USERNAME
no puede serroot
, a menos que configure su máquina virtual para permitir el inicio de sesión como root. Para obtener más información, consulte Conexión a instancias como usuario raíz .Para máquinas virtuales Windows que usan Active Directory (AD), el nombre de usuario debe ir precedido del dominio AD, en el formato
DOMAIN \
. Por ejemplo, el usuariocloudysanfrancisco
dentro del ADad.example.com
tiene unUSERNAME
deexample\cloudysanfrancisco
. -
EXPIRE_TIME
: la hora en que caduca la clave, en formato ISO 8601 . Por ejemplo:2021-12-04T20:12:00+0000
- Formato para una clave sin tiempo de vencimiento:
-
En la consola de Google Cloud, vaya a la página Crear una instancia .
Para agregar una clave SSH pública a los metadatos de la instancia, haga lo siguiente:
En el menú de navegación, haga clic en Seguridad .
Expanda la sección Administrar acceso .
Para deshabilitar el inicio de sesión en el sistema operativo, desmarque la casilla de verificación Controlar el acceso a la máquina virtual a través de permisos de IAM .
Si desea permitir que las claves SSH públicas en los metadatos del proyecto accedan a la instancia, desmarque la casilla de verificación Bloquear claves SSH en todo el proyecto .
En la sección Agregar claves SSH generadas manualmente , haga clic en Agregar elemento .
Agregue su clave pública en el cuadro de texto. La clave debe estar en uno de los siguientes formatos:
- Formato para una clave sin tiempo de vencimiento:
KEY_VALUE USERNAME
- Formato para una clave con tiempo de vencimiento:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Reemplace lo siguiente:
-
KEY_VALUE
: el valor de la clave SSH pública -
USERNAME
: su nombre de usuario. Por ejemplo,cloudysanfrancisco
ocloudysanfrancisco_gmail_com
.Para las máquinas virtuales Linux, el
USERNAME
no puede serroot
, a menos que configure su máquina virtual para permitir el inicio de sesión como root. Para obtener más información, consulte Conexión a máquinas virtuales Linux como usuario raíz .Para máquinas virtuales Windows que usan Active Directory (AD), el nombre de usuario debe ir precedido del dominio AD, en el formato
DOMAIN \
. Por ejemplo, el usuariocloudysanfrancisco
dentro del ADad.example.com
tiene unUSERNAME
deexample\cloudysanfrancisco
. -
EXPIRE_TIME
: la hora en que caduca la clave, en formato ISO 8601 . Por ejemplo:2021-12-04T20:12:00+0000
- Formato para una clave sin tiempo de vencimiento:
Opcional: especifique otras opciones de configuración. Para obtener más información, consulte Opciones de configuración durante la creación de instancias .
Para crear e iniciar la instancia, haga clic en Crear .
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Para crear una máquina virtual y agregar una clave SSH pública a los metadatos de la instancia al mismo tiempo usando la CLI de gcloud, usa el comando
gcloud compute instances create
:gcloud compute instances create VM_NAME \ --metadata=ssh-keys=PUBLIC_KEY
Reemplace lo siguiente:
-
VM_NAME
: el nombre de la nueva VM PUBLIC_KEY
: tu clave SSH pública, en uno de los siguientes formatos:- Formato para una clave sin tiempo de vencimiento:
USERNAME:KEY_VALUE
- Formato para una clave con tiempo de vencimiento:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Reemplace lo siguiente:
-
KEY_VALUE
: el valor de la clave SSH pública -
USERNAME
: su nombre de usuario. Por ejemplo,cloudysanfrancisco
ocloudysanfrancisco_gmail_com
.Para las máquinas virtuales Linux, el
USERNAME
no puede serroot
, a menos que configure su máquina virtual para permitir el inicio de sesión como root. Para obtener más información, consulte Conexión a instancias como usuario raíz .Para máquinas virtuales Windows que usan Active Directory (AD), el nombre de usuario debe ir precedido del dominio AD, en el formato
DOMAIN \
. Por ejemplo, el usuariocloudysanfrancisco
dentro del ADad.example.com
tiene unUSERNAME
deexample\cloudysanfrancisco
. -
EXPIRE_TIME
: la hora en que caduca la clave, en formato ISO 8601 . Por ejemplo:2021-12-04T20:12:00+0000
- Formato para una clave sin tiempo de vencimiento:
Puede agregar varias claves SSH utilizando el
--metadata-from-file=ssh-keys= FILE_PATH
. En el archivo, agregue una lista de nombres de usuario y claves SSH públicas en uno de los formatos anteriores.-
-
PROJECT_ID
: el ID del proyecto -
ZONE
: la zona de la VM - Formato para una clave sin tiempo de vencimiento:
USERNAME:KEY_VALUE
- Formato para una clave con tiempo de vencimiento:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
-
KEY_VALUE
: el valor de la clave SSH pública -
USERNAME
: su nombre de usuario. Por ejemplo,cloudysanfrancisco
ocloudysanfrancisco_gmail_com
.Para las máquinas virtuales Linux, el
USERNAME
no puede serroot
, a menos que configure su máquina virtual para permitir el inicio de sesión como root. Para obtener más información, consulte Conexión a instancias como usuario raíz .Para máquinas virtuales Windows que usan Active Directory (AD), el nombre de usuario debe ir precedido del dominio AD, en el formato
DOMAIN \
. Por ejemplo, el usuariocloudysanfrancisco
dentro del ADad.example.com
tiene unUSERNAME
deexample\cloudysanfrancisco
. -
EXPIRE_TIME
: la hora en que caduca la clave, en formato ISO 8601 . Por ejemplo:2021-12-04T20:12:00+0000
En la consola de Google Cloud, vaya a la página de instancias de VM .
Haga clic en el nombre de la VM para la que desea agregar una clave SSH.
Haga clic en Editar .
En Claves SSH , haga clic en Agregar elemento .
Agregue su clave pública en el cuadro de texto. La clave debe estar en uno de los siguientes formatos:
- Formato para una clave sin tiempo de vencimiento:
KEY_VALUE USERNAME
- Formato para una clave con tiempo de vencimiento:
KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Reemplace lo siguiente:
-
KEY_VALUE
: el valor de la clave SSH pública -
USERNAME
: su nombre de usuario. Por ejemplo,cloudysanfrancisco
ocloudysanfrancisco_gmail_com
.Para las máquinas virtuales Linux, el
USERNAME
no puede serroot
, a menos que configure su máquina virtual para permitir el inicio de sesión como root. Para obtener más información, consulte Conexión a máquinas virtuales Linux como usuario raíz .Para máquinas virtuales Windows que usan Active Directory (AD), el nombre de usuario debe ir precedido del dominio AD, en el formato
DOMAIN \
. Por ejemplo, el usuariocloudysanfrancisco
dentro del ADad.example.com
tiene unUSERNAME
deexample\cloudysanfrancisco
. -
EXPIRE_TIME
: la hora en que caduca la clave, en formato ISO 8601 . Por ejemplo:2021-12-04T20:12:00+0000
- Formato para una clave sin tiempo de vencimiento:
Haga clic en Guardar .
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Si hay claves SSH existentes en los metadatos de la instancia, debes volver a agregarlas a los metadatos de la instancia cada vez que agregues una nueva clave SSH mediante la CLI de gcloud. Si no vuelve a agregar las claves existentes, agregar una nueva clave borra las claves existentes.
Para agregar una clave SSH pública a los metadatos de la instancia mediante la CLI de gcloud, haz lo siguiente:
Si su VM ya tiene claves SSH públicas a nivel de instancia, consígalas de los metadatos y agréguelas a un archivo nuevo:
Ejecute el comando
gcloud compute instances describe
para obtener los metadatos de la VM:gcloud compute instances describe VM_NAME
Reemplace VM_NAME con el nombre de la VM para la que necesita agregar o eliminar claves SSH públicas.
El resultado es similar al siguiente:
... metadata: ...
- key: ssh-keys
value: |- cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF... baklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8... google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"} ...Copie el valor de metadatos
ssh-keys
.Cree y abra un nuevo archivo de texto en su estación de trabajo.
En el archivo, pegue la lista de claves que acaba de copiar.
Agregue su nueva clave al final de la lista, en uno de los siguientes formatos:
- Formato para una clave sin tiempo de vencimiento:
USERNAME:KEY_VALUE
- Formato para una clave con tiempo de vencimiento:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Reemplace lo siguiente:
-
KEY_VALUE
: el valor de la clave SSH pública -
USERNAME
: su nombre de usuario. Por ejemplo,cloudysanfrancisco
ocloudysanfrancisco_gmail_com
.Para las máquinas virtuales Linux, el
USERNAME
no puede serroot
, a menos que configure su máquina virtual para permitir el inicio de sesión como root. Para obtener más información, consulte Conexión a instancias como usuario raíz .Para máquinas virtuales Windows que usan Active Directory (AD), el nombre de usuario debe ir precedido del dominio AD, en el formato
DOMAIN \
. Por ejemplo, el usuariocloudysanfrancisco
dentro del ADad.example.com
tiene unUSERNAME
deexample\cloudysanfrancisco
. -
EXPIRE_TIME
: la hora en que caduca la clave, en formato ISO 8601 . Por ejemplo:2021-12-04T20:12:00+0000
- Guarde y cierre el archivo.
Ejecuta el comando
gcloud compute instances add-metadata
para establecer el valor dessh-keys
:gcloud compute instances add-metadata VM_NAME --metadata-from-file ssh-keys=KEY_FILE
Reemplace lo siguiente:
-
VM_NAME
: la VM para la que desea agregar la clave SSH -
KEY_FILE
con uno de los siguientes: - La ruta al archivo que creó en el paso anterior, si la VM tenía claves SSH existentes.
- La ruta a su nuevo archivo de clave SSH pública, si la VM no tenía claves SSH existentes
-
Obtenga los valores de
fingerprint
yssh-keys
de los metadatos mediante el métodoinstances.get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
Reemplace lo siguiente:
-
PROJECT_ID
: ID de tu proyecto -
ZONE
: la zona de la VM para agregar una clave SSH -
VM_NAME
: la máquina virtual para la que estás agregando una clave SSH.
La respuesta es similar a la siguiente:
... "fingerprint": "utgYE_XWtE8=", "items": [ { "key": "ssh-keys", "value": "cloudysanfrancisco:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAu5kKQCPF...\nbaklavainthebalkans:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQDx3FNVC8... google-ssh {"userName":"baklavainthebalkans","expireOn":"2021-06-14T16:59:03+0000"}" } ] ...
-
Agregue el nuevo valor
ssh-keys
utilizando el métodoinstances.setMetadata
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS\nNEW_SSH_KEY" } ] "fingerprint": "FINGERPRINT" }
Reemplace lo siguiente:
-
PROJECT_ID
: ID de tu proyecto -
EXISTING_SSH_KEYS
: el valor de la clavessh-keys
de la respuesta de la solicitud deinstances.get
-
FINGERPRINT
: lafingerprint
de la respuesta de la solicitudprojects.get
NEW_SSH_KEY
: la nueva clave SSH, en uno de los siguientes formatos:- Formato para una clave sin tiempo de vencimiento:
USERNAME:KEY_VALUE
- Formato para una clave con tiempo de vencimiento:
USERNAME:KEY_VALUE google-ssh {"userName":"USERNAME","expireOn":"EXPIRE_TIME"}
Reemplace lo siguiente:
-
KEY_VALUE
: el valor de la clave SSH pública -
USERNAME
: su nombre de usuario. Por ejemplo,cloudysanfrancisco
ocloudysanfrancisco_gmail_com
.Para las máquinas virtuales Linux, el
USERNAME
no puede serroot
, a menos que configure su máquina virtual para permitir el inicio de sesión como root. Para obtener más información, consulte Conexión a instancias como usuario raíz .Para máquinas virtuales Windows que usan Active Directory (AD), el nombre de usuario debe ir precedido del dominio AD, en el formato
DOMAIN \
. Por ejemplo, el usuariocloudysanfrancisco
dentro del ADad.example.com
tiene unUSERNAME
deexample\cloudysanfrancisco
. -
EXPIRE_TIME
: la hora en que caduca la clave, en formato ISO 8601 . Por ejemplo:2021-12-04T20:12:00+0000
- Formato para una clave sin tiempo de vencimiento:
-
- Aprenda a conectarse a máquinas virtuales .
- Aprenda a administrar el acceso a las máquinas virtuales .
- Aprenda a transferir archivos a máquinas virtuales .
- Descubra cómo funcionan las conexiones SSH a máquinas virtuales Linux en Compute Engine.
Terraform
Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa gcloud CLI y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para obtener más información, consulta Set up authentication for a local development environment.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud .
Agregar claves a las máquinas virtuales que utilizan el inicio de sesión del sistema operativo
Las máquinas virtuales que utilizan el inicio de sesión en el sistema operativo aceptan claves SSH asociadas con su cuenta de Google. Puedes asociar una clave SSH pública con tu cuenta de Google usando la CLI de gcloud o usando la API de inicio de sesión del sistema operativo. Si es administrador de su organización, puede agregar claves SSH a cuentas de usuario mediante Directory API .
Cuando agregas claves SSH a tu cuenta de Google, Compute Engine genera un nombre de usuario combinando el nombre de usuario y el dominio del correo electrónico asociado con tu cuenta de Google. Por ejemplo, si su dirección de correo electrónico es
cloudysanfrancisco@gmail.com
, su nombre de usuario escloudysanfrancisco_gmail_com
. Si agrega una clave SSH en un proyecto que está fuera de su organización, su nombre de usuario tiene el prefijoext_
, por ejemplo,ext_cloudysanfrancisco_gmail_com
. El administrador de su organización puede personalizar su nombre de usuario utilizando Directory API . Si ya tienes un nombre de usuario configurado, Compute Engine usa ese nombre de usuario cuando agregas claves SSH.nube de gcloud
Terraformar
Para agregar una clave SSH pública a su cuenta, use el recurso
google_client_openid_userinfo
junto con el recursogoogle_os_login_ssh_public_key
.DESCANSAR
Para agregar una clave SSH pública a su cuenta, utilice el método
users.importSshPublicKey
de la API de inicio de sesión del sistema operativo:POST https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL:importSshPublicKey { "key": "SSH_KEY", "expirationTimeUsec": "EXPIRATION_TIMESTAMP" }
Reemplace lo siguiente:
Agregue claves SSH a máquinas virtuales que usan claves SSH basadas en metadatos
máquinas virtuales que no usan sistema operativoalmacenar claves SSH en el proyecto de Compute Engine y los metadatos de la instancia. Si el inicio de sesión en el sistema operativo está habilitado para una máquina virtual, el agente invitado de la máquina virtual ignora las claves almacenadas en los metadatos.
Puede utilizar claves SSH almacenadas en los metadatos del proyecto para acceder a todas las máquinas virtuales de un proyecto. Puede utilizar claves SSH almacenadas en metadatos de instancia para acceder a máquinas virtuales individuales.
Compute Engine no elimina automáticamente las claves SSH caducadas de los metadatos en el momento de su vencimiento, pero las claves caducadas no se pueden usar para establecer nuevas conexiones a las máquinas virtuales. Si desea eliminar claves caducadas de los metadatos, consulte Eliminar claves SSH de máquinas virtuales que usan claves basadas en metadatos .
Puedes agregar una clave SSH pública a los metadatos del proyecto o de la instancia de VM mediante la consola de Google Cloud, la CLI de gcloud o REST.
Agregar claves SSH a los metadatos del proyecto
Puede agregar una clave SSH pública a los metadatos del proyecto para acceder a todas las máquinas virtuales de un proyecto, excepto a las máquinas virtuales que bloquean las claves SSH de todo el proyecto. Para obtener más información sobre el bloqueo de claves SSH en todo el proyecto, consulte Bloquear claves SSH de máquinas virtuales que usan claves SSH basadas en metadatos .
Consola
Para agregar una clave SSH pública a los metadatos del proyecto usando la consola de Google Cloud, haga lo siguiente:
nube de gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Terraformar
Para agregar una clave SSH pública a los metadatos de su proyecto, use el recurso
google_compute_project_metadata
.DESCANSAR
Si existen claves SSH en los metadatos del proyecto, debes volver a agregarlas a los metadatos del proyecto cada vez que agregues una nueva clave SSH mediante la API de Compute Engine. Si no vuelve a agregar las claves existentes, agregar una nueva clave borra las claves existentes.
Para agregar una clave SSH pública a los metadatos del proyecto usando la API de Compute Engine, haga lo siguiente:
Agregar claves SSH a los metadatos de la instancia
Puede agregar una clave SSH pública a los metadatos de la instancia cuando crea una VM o después de crear una VM .
Agregue claves SSH a los metadatos de la instancia durante la creación de VM
Puedes agregar claves SSH a los metadatos de la instancia durante la creación de la VM mediante la consola de Google Cloud, la CLI de gcloud o la API de Compute Engine.
Consola
Para crear una instancia y agregar una clave SSH pública a los metadatos de la instancia al mismo tiempo usando la consola de Google Cloud, haga lo siguiente:
nube de gcloud
Terraformar
Para agregar una clave SSH pública a los metadatos de su instancia, use el recurso
google_compute_instance
.DESCANSAR
Para crear una VM y agregar una clave SSH pública a los metadatos de la instancia al mismo tiempo usando Compute Engine, cree una solicitud
POST
para el métodoinstances.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Reemplace lo siguiente:
En el cuerpo de la solicitud, proporcione nombres de usuario y claves SSH públicas en la propiedad
items
:... { "items": [ { "key": "ssh-keys", "value": "PUBLIC_KEY" } ] } ...
Reemplace
PUBLIC_KEY
con su clave pública, en uno de los siguientes formatos:Reemplace lo siguiente:
Puede agregar varias claves SSH agregando
\n
entre claves.Agregue claves SSH a los metadatos de la instancia después de la creación de la VM
Puedes agregar claves SSH a los metadatos de la instancia después de la creación de la VM, usando la consola de Google Cloud, la CLI de gcloud o la API de Compute Engine.
Consola
Para agregar una clave SSH pública a los metadatos de la instancia usando la consola de Google Cloud, haga lo siguiente:
nube de gcloud
DESCANSAR
Si existen claves SSH en los metadatos de la instancia, debes volver a agregarlas a los metadatos de la instancia cada vez que agregues una nueva clave SSH mediante la API de Compute Engine. Si no vuelve a agregar las claves existentes, agregar una nueva clave borra las claves existentes.
Para agregar una clave SSH pública a los metadatos de la instancia mediante la API de Compute Engine, haga lo siguiente:
¿Qué sigue?
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-04-17 (UTC).
-