es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo hacer inicio de sesión SSH en Google Cloud Shell utilizando una llave privada existente en una llave de seguridad YubiKey.

Puedo usar gcloud cloud-shell ssh para iniciar sesión en Google Cloud Shell.

Esto, al usarlo por primera vez, crea un ~/.ssh/google_compute_engine (+.pub).

Sin embargo, ya tengo clave/s privada/s SSH existentes y preferiría utilizar esas, específicamente las claves ed25519-sk e id_ecdsa_sk respaldadas por una llave de seguridad física YubiKey. La documentación de gcloud cloud-shell ssh menciona un indicador --ssh-key-file, pero parece que no funciona y muestra un mensaje de error “ignored explicit argument” que no es especialmente útil:

$ gcloud version
Google Cloud SDK 367.0.0
alpha 2021.12.10
beta 2021.12.10
bq 2.0.72
core 2021.12.10
gsutil 5.5

$ gcloud cloud-shell ssh --ssh-key-file=~/.ssh/id_ecdsask
ERROR: (gcloud.cloud-shell.ssh) argument --ssh-key-file: ignored explicit argument '~/.ssh/id_ecdsask'
Usage: gcloud cloud-shell ssh [optional flags]
  optional flags may be  --authorize-session | --command | --dry-run |
                         --force-key-file-overwrite | --help | --ssh-flag |
                         --ssh-key-file

Pensé que quizás no acepta claves SSH de tipo SK, pero incluso una simple y clásica clave RSA creada por mí no parece funcionar:

$ ssh-keygen
(...)
Your identification has been saved in /home/vorburger/.ssh/id_rsa
Your public key has been saved in /home/vorburger/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:...

$ gcloud --verbosity=debug cloud-shell ssh --ssh-key-file=~/.ssh/id_rsa --verbosity=debug
ERROR: (gcloud.cloud-shell.ssh) argument --ssh-key-file: ignored explicit argument '~/.ssh/id_rsa'

¿Cómo se utilizan las claves SSH existentes con gcloud cloud-shell ssh?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Actualmente, la bandera --ssh-key-file para gcloud cloud-shell ssh no funciona como se espera y devuelve un mensaje de error de “argumento explícito ignorado”. Por lo tanto, no es posible utilizar esta bandera para especificar una clave privada SSH diferente para la autenticación.

    Una solución alternativa es agregar la clave privada SSH deseada al agente SSH utilizando el comando ssh-add en la terminal de Cloud Shell. Por ejemplo, si tiene la clave privada SSH ed25519-sk almacenada en su máquina local, puede agregarla al agente SSH ejecutando:

    ssh-add /ruta/a/ed25519-sk
    

    Luego, cuando ejecute gcloud cloud-shell ssh, el agente SSH utilizará automáticamente la clave agregada para la autenticación.

    Alternativamente, también puede especificar manualmente la clave privada para SSH utilizando la bandera -i con el comando ssh. Por ejemplo:

    ssh -i /ruta/a/ed25519-sk <nombredeusuario>@<ipexterna>
    

    Esto autenticará utilizando la clave privada especificada en lugar de la clave predeterminada google_compute_engine.

Comments are closed.