Este documento describe cómo evitar que los usuarios accedan a instancias de máquinas virtuales (VM) eliminando y bloqueando las claves SSH de las VM.
Antes de comenzar
- 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.
Si no sabes qué clave deseas eliminar, ejecuta el comando
gcloud compute os-login describe-profile
para ver todas las claves asociadas con tu cuenta:gcloud compute os-login describe-profile
Copie el valor de
fingerprint
de la clave que desea eliminar.Elimina la clave de tu cuenta usando el comando
gcloud compute os-login ssh-keys remove
:gcloud compute os-login ssh-keys remove --key=KEY
Reemplace
KEY
con la clave SSH pública que desea eliminar, o la huella digital de inicio de sesión del sistema operativo para la clave que desea eliminar.Si no sabe qué clave desea eliminar, utilice el método
users.getLoginProfile
para ver todas las claves asociadas con su cuenta:GET https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL/loginProfile
Reemplace
ACCOUNT_EMAIL
con la dirección de correo electrónico asociada a su cuenta.Copie el valor de
fingerprint
de la clave que desea eliminar.Elimine la clave de su cuenta utilizando el método
users.sshPublicKeys.delete
:DELETE https://oslogin.googleapis.com/v1/users/ACCOUNT_EMAIL/sshPublicKeys/FINGERPRINT
Reemplace lo siguiente:
-
ACCOUNT_EMAIL
: la dirección de correo electrónico asociada a tu cuenta -
FINGERPRINT
: la huella digital SHA-256 de la clave a eliminar
-
En la consola de Google Cloud, vaya a la página Metadatos .
Haga clic en la pestaña Claves SSH .
Haga clic en
Editar en la parte superior de la página.Navegue hasta la clave SSH que desea eliminar y haga clic en el botón
junto a la clave SSH.Repita este paso para cada clave SSH que desee eliminar.
Haga clic en Guardar .
Ejecute el comando
gcloud compute project-info describe
para obtener los metadatos del proyecto:gcloud compute project-info describe
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 SSH que acaba de copiar y luego elimine las claves que desee eliminar de los metadatos del proyecto.
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
Utilice el método
projects.get
para obtener los valores defingerprint
yssh-keys
de los metadatos.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"}" } ] ...
Copie la lista de valores de claves SSH y elimine las claves que desea eliminar.
Utilice
projects.setCommonInstanceMetadata
para eliminar las claves SSH.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS" } ] "fingerprint": "FINGERPRINT" }
Reemplace lo siguiente:
-
PROJECT_ID
: ID de tu proyecto -
EXISTING_SSH_KEYS
: la lista de claves SSH que desea conservar -
FINGERPRINT
: el valor de lafingerprint
de la respuesta de la solicitud deprojects.get
-
En la consola de Google Cloud, vaya a la página de instancias de VM .
Haga clic en el nombre de la máquina virtual para la que desea eliminar una clave.
Haga clic en Editar .
En la sección Claves SSH , haga clic en Mostrar y editar . La sección se expande para mostrar todas las claves SSH públicas a nivel de instancia.
Haga clic en el botón
junto a la clave SSH que desea eliminar.Repita este paso para cada clave SSH que desee eliminar.
Haga clic en Guardar .
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 local.
En el archivo, pegue la lista de claves SSH que acaba de copiar y luego elimine las claves que desee eliminar.
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 instances add-metadata VM_NAME --metadata-from-file ssh-keys=KEY_FILE
Reemplace lo siguiente:
-
VM_NAME
: la máquina virtual para la que desea eliminar la clave SSH -
KEY_FILE
: la ruta al archivo que contiene la lista de todas las claves SSH del proyecto
-
Utilice el método
instances.get
para obtener los valores defingerprint
yssh-keys
de los metadatos.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 la que estás agregando 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"}" } ] ...
-
Copie la lista de valores de claves SSH y elimine las claves que desea eliminar.
Utilice
instances.setMetadata
para eliminar las claves SSH.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "items": [ { "key": "ssh-keys", "value": "EXISTING_SSH_KEYS } ] "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 deinstances.get
-
En la consola de Google Cloud, vaya a la página Crear una instancia .
Para bloquear las claves SSH del proyecto, 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 .
Seleccione la casilla de verificación Bloquear claves SSH para todo el proyecto .
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 .
-
PROJECT_ID
: el ID del proyecto -
ZONE
: la zona de la VM 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 bloquear las claves SSH del proyecto.
Haga clic en Editar .
En Claves SSH , seleccione la casilla de verificación Bloquear claves SSH para todo el proyecto .
Cuando haya terminado de editar la configuración de conexión para claves SSH, haga clic en Guardar .
Utilice el método
instances.get
para obtener lafingerprint
de los metadatos.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 la que estás agregando 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=" ...
-
Utilice el método
instances.setMetadata
para establecerblock-project-ssh-keys
enTRUE
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMetadata { "items": [ { "key": "block-project-ssh-keys", "value": TRUE } ] "fingerprint": "FINGERPRINT" }
Reemplace lo siguiente:
-
PROJECT_ID
es el ID de tu proyecto -
ZONE
es la zona donde se encuentra su instancia -
INSTANCE_NAME
es la instancia en la que desea bloquear las claves de todo el proyecto. -
FINGERPRINT
: el valor de lafingerprint
de la respuesta de la solicitud deinstances.get
.
-
- Conozca los beneficios de utilizar OS Login para la gestión de acceso.
- Conéctese a máquinas virtuales mediante las herramientas de Google para no tener que administrar sus propias claves SSH.
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 .
Eliminar claves SSH
Puede eliminar claves SSH de máquinas virtuales que usan inicio de sesión en el sistema operativo y de máquinas virtuales que usan claves SSH basadas en metadatos .Elimine las claves SSH de 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. Puede eliminar una clave SSH pública de su cuenta de usuario mediante la CLI de Google Cloud o la API de inicio de sesión del sistema operativo. Si es administrador de su organización, puede eliminar claves SSH de las cuentas de usuario mediante Directory API . Compute Engine elimina automáticamente las claves caducadas de su cuenta de Google.
nube de gcloud
Para eliminar una clave SSH pública de su cuenta, haga lo siguiente:
DESCANSAR
Para eliminar una clave SSH pública de su cuenta, haga lo siguiente:
Elimine las claves SSH de las máquinas virtuales que utilizan claves basadas en metadatos
Puedes eliminar una clave SSH pública de los metadatos del proyecto o de la instancia mediante la consola de Google Cloud, la CLI de gcloud o la API de Compute Engine.
Después de eliminar la última clave de los metadatos de un usuario en particular, o de que expire la última clave de los metadatos de un usuario en particular, Compute Engine elimina el archivo
Precaución: Si administra claves SSH en metadatos, podría interrumpir la capacidad de los miembros de su proyecto para conectarse a las máquinas virtuales. Además, corre el riesgo de otorgar a los usuarios, incluidos los usuarios fuera de su proyecto, acceso no deseado a las máquinas virtuales. Para obtener más información, consulte riesgos de la gestión manual de claves .~/.ssh/authorized_keys
del usuario en la VM.Eliminar una clave pública de los metadatos del proyecto
Elimine una clave SSH pública de los metadatos del proyecto para eliminar el acceso a todas las máquinas virtuales de un proyecto.
Cuando eliminas una clave de los metadatos mediante la CLI de gcloud y la API de Compute Engine, debes recuperar la lista de claves existentes, editar la lista de claves para eliminar las claves no deseadas y sobrescribir las claves antiguas con la lista de claves que deseas conservar, como se explica en la siguiente sección.
Consola
Para eliminar una clave SSH pública de los metadatos del proyecto usando la consola de Google Cloud, haga lo siguiente:
nube de gcloud
Para eliminar una clave SSH pública de los metadatos del proyecto mediante la CLI de gcloud, haz lo siguiente:
DESCANSAR
Para eliminar una clave SSH pública de los metadatos del proyecto usando la API de Compute Engine, haga lo siguiente:
Eliminar una clave SSH pública de los metadatos de la instancia
Elimine una clave SSH pública de los metadatos de la instancia para eliminar el acceso a una única máquina virtual.
Cuando eliminas una clave de los metadatos mediante la CLI de gcloud y la API de Compute Engine, debes recuperar la lista de claves existentes, editar la lista de claves para eliminar las claves no deseadas y sobrescribir las claves antiguas con la lista de claves que deseas conservar, como se explica en la siguiente sección.
Consola
Para eliminar una clave SSH pública de los metadatos de la instancia mediante la consola de Google Cloud, haga lo siguiente:
nube de gcloud
Para eliminar una clave SSH pública de los metadatos de la instancia mediante la CLI de gcloud, haz lo siguiente:
DESCANSAR
Para eliminar una clave SSH pública de los metadatos de la instancia mediante la API de Compute Engine, haga lo siguiente:
Bloquear claves SSH de proyecto de máquinas virtuales que utilizan claves SSH basadas en metadatos
Puede evitar que las máquinas virtuales acepten claves SSH almacenadas en los metadatos del proyecto bloqueando las claves SSH del proyecto de las máquinas virtuales. Puede bloquear las claves SSH del proyecto de las máquinas virtuales cuando crea una máquina virtual o después de crear una máquina virtual .
Bloquear las claves SSH del proyecto desde una VM durante la creación de la VM
Puedes bloquear las claves SSH del proyecto de las VM 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 evitar que acepte claves SSH almacenadas en los metadatos del proyecto mediante la consola de Google Cloud, haga lo siguiente:
nube de gcloud
Para crear una VM y evitar que acepte claves SSH almacenadas en los metadatos del proyecto usando la CLI de gcloud, usa el comando
gcloud compute instances create
:gcloud compute instances create VM_NAME \ --metadata block-project-ssh-keys=TRUE
Reemplace
VM_NAME
con el nombre de la nueva VM.DESCANSAR
Para crear una VM y evitar que acepte claves SSH almacenadas en los metadatos del proyecto 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": "block-project-ssh-keys", "value": TRUE } ] } ...
Bloquear las claves SSH del proyecto desde una VM después de la creación de la VM
Puedes bloquear las claves SSH del proyecto de las VM después de su creación mediante la consola de Google Cloud, la CLI de gcloud o la API de Compute Engine.
Consola
Para impedir que las máquinas virtuales acepten conexiones de claves SSH almacenadas en los metadatos del proyecto mediante la consola de Google Cloud, haga lo siguiente:
nube de gcloud
Para impedir que las máquinas virtuales acepten conexiones de claves SSH almacenadas en los metadatos del proyecto mediante la CLI de gcloud, haz lo siguiente:
Ejecuta el comando
gcloud compute instances add-metadata
:gcloud compute instances add-metadata VM_NAME --metadata block-project-ssh-keys=TRUE
Reemplace
VM_NAME
con el nombre de la VM para la cual desea bloquear las claves SSH públicas de todo el proyecto.DESCANSAR
Para impedir que las máquinas virtuales acepten conexiones de claves SSH almacenadas en los metadatos del proyecto 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).
-