¿Cómo están relacionados ~/.ssh/authorized_keys y los metadatos del proyecto / instancia de Google Cloud?
De lo que leí, ~/.ssh/authorized_keys
solo toma lo que está en los metadatos del nivel del proyecto. Si elimino una entrada desde la consola, también desaparece del archivo authorized_keys
. Sin embargo, si borro desde el archivo authorized_keys
, la consola todavía muestra la entrada con la clave pública eliminada.
Una vez que cierro la sesión de ssh, ya no puedo volver a entrar con gcloud compute ssh user@instance_name
o ssh user@instance_ip
. ¿Por qué es esto así?
Luego tuve que ir a la consola y eliminar esa entrada (que previamente eliminé editando directamente el archivo authorized_keys
) y solo ahora gcloud compute ssh user@instance_name
funciona correctamente de nuevo, lo que me ayuda a agregar mi google_compute_engine.pub
en los metadatos del proyecto para que ssh user@instance_ip
funcione también.
PD: No estoy familiarizado con cómo funcionan los metadatos del nivel de la instancia, así que solo experimenté con claves ssh de metadatos del nivel del proyecto. Si alguna respuesta puede comentar si su respuesta también se aplica al nivel de la instancia, eso sería genial.
davy.ai
Parece que Google Cloud Platform utiliza los metadatos a nivel de proyecto para poblar el archivo
authorized_keys
para conexiones SSH. Esto significa que cualquier cambio realizado en los metadatos se reflejará en el archivoauthorized_keys
. Sin embargo, eliminar una entrada directamente del archivoauthorized_keys
no actualizará los metadatos y puede causar problemas con las conexiones SSH.Al intentar reconectar usando
gcloud compute ssh
ossh
después de eliminar una entrada del archivoauthorized_keys
, la conexión puede fallar porque la clave eliminada aún está presente en los metadatos. Para eliminar correctamente la clave, es necesario eliminarla también de los metadatos.No está claro a partir de esta información si se aplica el mismo comportamiento a los metadatos a nivel de instancia. Puede ser necesaria una investigación o pruebas adicionales para determinar cómo interactúan los metadatos a nivel de instancia con las conexiones SSH.