Cómo conectarse a instancias de Linux

Esta guía muestra cómo conectarse a instancias de Linux con herramientas SSH comunes en estaciones de trabajo de Linux, OSX y Windows. Si necesitas conectarte a una instancia de Windows, conéctate con RDP.

La manera más fácil de conectarte con una instancia de Linux en Compute Engine es conectarte desde el navegador o conectarte con la herramienta gcloud.

De manera alternativa, puedes generar un nuevo par de claves y aplicarlo a tu proyecto, lo que te permite conectarte con herramientas de terceros. Por ejemplo, puedes conectarte con SSH en estaciones de trabajo de Linux o de OSX o conectarte con PuTTY en estaciones de trabajo de Windows.

Si eres un usuario avanzado que necesita automatizar la administración de las claves SSH o configurar claves SSH públicas solo en instancias específicas, consulta Cómo automatizar la administración de claves SSH.

Antes de comenzar

Cómo conectarse con una instancia desde el navegador

Para conectarte a una instancia a través de SSH directamente desde el navegador web en la Consola de Google Cloud Platform, usa estos comandos:

  1. En la consola de Cloud Platform, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. En la lista de instancias de máquinas virtuales, haz clic en el botón SSH de la fila de la instancia a la que quieres conectarte.

Para conectarse con instancias a través del navegador se deben tener en cuenta algunas advertencias. Para obtener más información, consulta Cómo conectarse con SSH desde el navegador.

Cómo conectarse con una instancia a través de la línea de comandos

Puedes usar la herramienta de línea de comandos gcloud para conectarte con facilidad a las instancias de Linux. La herramienta gcloud administra tus claves SSH mediante la creación y la aplicación de nuevas claves SSH en todo el proyecto cuando las necesitas.

Para conectarte a tu instancia, usa el comando gcloud compute ssh:

gcloud compute ssh [INSTANCE_NAME]

[INSTANCE_NAME] es el nombre de la instancia.

Ahora, puedes usar el terminal para ejecutar comandos en la instancia de Linux. Cuando termines, usa el comando exit para desconectarte de la instancia.

Cómo generar un nuevo par de claves SSH

Para poder acceder a tus instancias con SSH o SCP, debes generar un nuevo par de claves SSH y aplicar la clave pública a tu proyecto. Si ya te conectaste a una instancia a través de la herramienta gcloud, tus claves ya se aplicaron al proyecto y están disponibles en las siguientes ubicaciones:

  • Linux y OSX
    • Clave pública: $HOME/.ssh/google_compute_engine.pub
    • Clave privada: $HOME/.ssh/google_compute_engine
  • Windows:
    • Clave pública: C:\Users\[USER_NAME]\.ssh\google_compute_engine.pub
    • Clave privada: C:\Users\[USER_NAME]\.ssh\google_compute_engine

[USER_NAME] es tu nombre de usuario en la estación de trabajo local.

De manera alternativa, puedes generar tus propios pares de clave de forma manual:

Linux y OSX


Para generar un nuevo par de claves SSH en estaciones de trabajo de OSX o Linux:

  1. Abre un terminal en la estación de trabajo y usa el comando ssh-keygen para generar un nuevo par de claves. Especifica la marca -C para agregar un comentario con tu nombre de usuario de Google. En el ejemplo, se crea una clave privada llamada my-ssh-key y un archivo de clave pública llamado my-ssh-key.pub.

    ssh-keygen -t rsa -f ~/.ssh/my-ssh-key -C [USERNAME]
    

    [USERNAME] es el usuario en la instancia para el que aplicarás la clave. Si el usuario no existe en la instancia, Compute Engine lo crea de forma automática con el nombre de usuario que especificas en este comando.

  2. Restringe el acceso a tu clave privada my-ssh-key, de manera que solo tú puedas leerla y nadie pueda escribir en ella.

    chmod 400 ~/.ssh/my-ssh-key
    
  3. Ve a la página de metadatos del proyecto.

    Ir a la página de metadatos

  4. Haz clic en Claves SSH para ver una lista de claves SSH públicas de todo el proyecto.

  5. Haz clic en el botón Editar para modificar las claves SSH públicas en el proyecto.

  6. Obtén los contenidos del archivo de clave pública ~/.ssh/my-ssh-key.pub con el comando cat.

    cat ~/.ssh/my-ssh-key.pub
    

    El terminal te muestra la clave pública con el siguiente formato:

    ssh-rsa [KEY_VALUE] [USERNAME]
    

    donde:

    • [KEY_VALUE] es el valor de la clave pública que se generó.
    • [USERNAME] es tu nombre de usuario.
  7. Copia el resultado del comando cat y pégalo como un elemento nuevo en la lista de claves SSH.

  8. En la parte inferior de la página de claves SSH, haz clic en Guardar para guardar la nueva clave SSH para todo el proyecto.

Ahora, la clave pública está configurada para que funcione en todas las instancias de tu proyecto. Usa el comando ssh para conectarte a tus instancias.

Windows


Para generar un nuevo par de claves SSH en estaciones de trabajo de Windows, haz lo siguiente:

  1. Descarga puttygen.exe.

  2. Ejecuta PuTTYgen. Para este ejemplo, ejecuta solo el archivo puttygen.exe que descargaste. Se abrirá una ventana en la que puedes configurar la generación de claves.

  3. Haz clic en el botón Generar para crear un nuevo par de claves. En la mayoría de los casos, se pueden usar los parámetros predeterminados. Cuando termines de generar el par de claves, la herramienta muestra el valor de tu clave pública.

  4. En la sección Comentario de la clave, ingresa tu nombre de usuario de Google. La clave debería tener la siguiente estructura:

    ssh-rsa [KEY_VALUE] [USERNAME]
    

    donde:

    • [KEY_VALUE] es el valor clave que generaste.
    • [USERNAME] es tu nombre de usuario de Google.
  5. De manera opcional, ingresa una Frase de contraseña de la clave para protegerla.

  6. Haz clic en Guardar clave privada para guardar la clave privada en un archivo. Para este ejemplo, guarda la clave como my-ssh-key.ppk.

  7. Haz clic en Guardar clave pública para escribir tu clave pública en un archivo y usarla más tarde. Mantén abierta la ventana de PuTTYgen por ahora.

  8. Ve a la página de metadatos del proyecto.

    Ir a la página de metadatos

  9. Haz clic en Claves SSH para ver una lista de claves SSH públicas de todo el proyecto.

  10. Haz clic en el botón Editar para poder modificar las claves SSH públicas en el proyecto.

  11. Copia todo el valor de la clave pública desde la herramienta PuTTYgen y pégalo como un elemento nuevo en la lista de claves SSH de la página de metadatos. El valor de la clave pública está disponible en la parte superior de la pantalla de PuTTYgen:

    Captura de pantalla de la clave pública de PuTTYgen

  12. En la parte inferior de la página de claves SSH, haz clic en Guardar para guardar la nueva clave SSH para todo el proyecto.

Ahora, la clave pública está configurada para que funcione en todas las instancias de tu proyecto. Usa PuTTY para conectarte con tus instancias.

Cómo conectarse con SSH en estaciones de trabajo de OSX o Linux

Para conectarte con tus instancias a través de SSH, haz lo siguiente:

  1. Si aún no aplicaste una clave pública a tu proyecto de Cloud Platform Console, genera un nuevo par de claves y aplícalo a tu proyecto.

  2. En la consola, busca la IP externa de la instancia a la que deseas conectarte. Ve a la lista de tus instancias.

    Ir a la página de instancias

  3. Usa el comando ssh para conectarte a tu instancia. Especifica el nombre de usuario y la dirección IP externa de la instancia a la que deseas conectarte. El nombre de usuario es el de Google que usas para acceder a tu proyecto. Para este ejemplo, la clave privada se encuentra en ~/.ssh/my-ssh-key.

    ssh -i ~/.ssh/my-ssh-key [USERNAME]@[IP_ADDRESS]
    

    donde:

    • [USERNAME] es tu nombre de usuario
    • [IP_ADDRESS] es la IP de la instancia

Si la conexión se ejecuta de forma correcta, puedes usar el terminal para ejecutar comandos en la instancia. Cuando termines, usa el comando exit para desconectarte de la instancia.

Cómo conectarse con PuTTY en estaciones de trabajo de Windows

En las estaciones de trabajo de Windows, puedes usar la herramienta PuTTY para conectarte con tus instancias. Para conectarte a tu instancia con PuTTY, haz lo siguiente:

  1. Si aún no aplicaste una clave pública a tu proyecto de Cloud Platform Console, genera un nuevo par de claves y aplícalo a tu proyecto.

  2. Descarga putty.exe.

  3. Ejecuta la herramienta PuTTY. Para este ejemplo, ejecuta solo el archivo putty.exe que descargaste. Se abrirá una ventana en la que puedes configurar tu conexión.

  4. En la consola de Google Cloud Platform, busca la IP externa de la instancia a la que deseas conectarte. Ve a la lista de tus instancias.

    Ir a la página de instancias

  5. En la herramienta PuTTY, especifica tu nombre de usuario de Google y la dirección IP externa de la instancia a la que deseas conectarte en el campo Nombre del host. El nombre de usuario es el de Google que usas para acceder a tu proyecto. Para este ejemplo, el usuario es example-user y la dirección IP externa es 104.196.31.103.

    Configuración del campo Nombre del host como example-user@104.196.31.103

  6. En el lado izquierdo de la ventana de PuTTY, navega a Conexión > SSH > Auth.

  7. Ingresa en el campo Archivo de clave privada para la autenticación con la ruta de acceso de tu archivo de clave privada. Para este ejemplo, especifica la ruta de acceso al archivo my-ssh-key.ppk.

    Configuración de la ruta de acceso al archivo my-ssh-key.ppk en el campo del archivo de clave privada.

  8. Haz clic en Abrir para abrir un terminal con una conexión a tu instancia.

Si la conexión se ejecuta de forma correcta, puedes usar el terminal para ejecutar comandos en la instancia. Cuando termines, usa el comando exit para desconectarte de la instancia.

Cómo conectarse a instancias que no tienen direcciones IP externas

Si te conectas a una instancia que tiene una dirección IP externa, puedes conectarte en cadena desde esa instancia a cualquier instancia en la misma red de VPC con la dirección IP externa. Puedes conectarte a una instancia incluso si no tiene una dirección IP externa.

Este proceso tiene los siguientes requisitos:

  • Dos instancias en la misma red de VPC. Una instancia con una IP externa y otra instancia sin una dirección IP externa.
  • Una regla de firewall que permita conexiones de SSH en el puerto 22. La regla de firewall es una regla predeterminada en la red de VPC default. Ambas instancias deben ser parte de esta red de VPC.

Para conectarte a una instancia sin una dirección IP externa, haz lo siguiente:

  1. Si aún no aplicaste una clave pública a tu proyecto de Cloud Platform Console, genera un nuevo par de claves y aplícalo a tu proyecto.

  2. En la máquina local, inicia ssh-agent para que administre tus claves:

    eval `ssh-agent`
    
  3. Usa el comando ssh-add para subir las claves públicas desde tu computadora local al agente y úsalas para todos los comandos SSH de autenticación.

    ssh-add ~/.ssh/[PRIVATE_KEY]
    

    [PRIVATE_KEY] es el nombre de tu archivo de clave privada.

  4. Conecta una instancia con una dirección IP externa y agrega el argumento -A para habilitar el reenvío del agente de autenticación.

    gcloud compute ssh --ssh-flag="-A" [EXTERNAL_INSTANCE_NAME]
    

    [EXTERNAL_INSTANCE_NAME] es el nombre de la instancia que tiene una dirección IP externa.

  5. Después de conectarte con la instancia con dirección externa, usa ssh para conectarte a cualquier otra instancia de la misma red VPC.

    $ ssh [INTERNAL_INSTANCE_NAME]
    

    [INTERNAL_INSTANCE_NAME] es el nombre de la segunda instancia a la que debes conectarte.

  6. Cuando termines, usa el comando exit para desconectarte de cada instancia, una a la vez.

    $ exit
    

Cómo conectarse con instancias como usuario root

Según la configuración predeterminada, las imágenes públicas y los sistemas operativos más comunes no admiten el acceso de raíz con SSH. Se recomienda asignar el valor no al parámetro PermitRootLogin del archivo de configuración SSH /etc/ssh/sshd_config.

Debido a este parámetro, no puedes conectar instancias como el usuario raíz, incluso si especificas una clave SSH para root en los metadatos del proyecto o de la instancia. Si un usuario necesita permisos de raíz, puede ejecutar comandos a través de sudo para obtenerlos.

¿Qué sigue?

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Compute Engine Documentation