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
?
davy.ai
Actualmente, la bandera
--ssh-key-file
paragcloud 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 SSHed25519-sk
almacenada en su máquina local, puede agregarla al agente SSH ejecutando: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 comandossh
. Por ejemplo:Esto autenticará utilizando la clave privada especificada en lugar de la clave predeterminada
google_compute_engine
.