En esta guía aprenderás a conectarte a las instancias de Linux con una estación de trabajo OSX, Windows o Linux a través de herramientas SSH comunes. Si necesitas conectarte a una instancia de Windows, debes hacerlo a través del protocolo de escritorio remoto (RDP).
La forma más fácil de conectarse a una instancia de Linux en Compute Engine es mediante el navegador o la herramienta gcloud
.
También puedes generar un nuevo par de claves y aplicarlo a tu proyecto. De este modo, podrás utilizar herramientas de terceros para conectarte. Por ejemplo, puedes conectarte a través de SSH en estaciones de trabajo OSX o Linux, o bien a través de PuTTY en estaciones de trabajo Windows.
Si tienes conocimientos avanzados y necesitas automatizar el proceso de administración de claves SSH o configurar claves SSH públicas en instancias específicas, consulta este artículo sobre cómo automatizar el proceso de administración de claves SSH.
Antes de empezar
- Si quieres seguir los ejemplos de líneas de comandos de esta guía:
Conectarse a una instancia a través del navegador
Para conectar una instancia mediante SSH directamente desde tu navegador web en la consola de Google Cloud Platform, utiliza estos comandos:
- En la Consola de APIs, ve a la página Instancias de VM.
- 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.
Debes tomar algunas precauciones para conectarte a instancias a través del navegador. Para obtener más información, consulta el artículo sobre SSH en el navegador.
Conectarse a una instancia a través de la línea de comandos
Puedes utilizar la herramienta de línea de comandos gcloud
para conectarte fácilmente a tus instancias de Linux. La herramienta gcloud
se encarga de administrar las claves SSH. Para ello, genera y aplica nuevas claves SSH en todo el proyecto cuando sean necesarias.
Para conectarte a la instancia, utiliza el comando gcloud compute ssh
:
gcloud compute ssh [INSTANCE_NAME]
[INSTANCE_NAME]
es el nombre de la instancia.
Una vez hecho esto, podrás utilizar el terminal para ejecutar comandos en la instancia de Linux. Cuando hayas terminado, utiliza el comando exit
para desconectarte de la instancia.
Generar un nuevo par de claves SSH
Antes de utilizar SSH o SCP para acceder a las instancias, debes generar un nuevo par de claves SSH y aplicar la clave pública al proyecto. Si te has conectado a una instancia a través de la herramienta gcloud
, tus claves ya se habrán aplicado al proyecto y estará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
- Clave pública:
- Windows:
- Clave pública:
C:\Users\[USER_NAME]\.ssh\google_compute_engine.pub
- Clave privada:
C:\Users\[USER_NAME]\.ssh\google_compute_engine
- Clave pública:
[USER_NAME]
es el nombre de usuario que utilizas en tu estación de trabajo local.
También puedes generar un par de claves manualmente. A continuación, te indicamos cómo hacerlo:
Linux y OSX
Sigue estos pasos para generar un nuevo par de claves SSH en una estación de trabajo OSX o Linux:
Abre un terminal y utiliza el comando
ssh-keygen
para generar un nuevo par de claves. Introduce la marca-C
para añadir un comentario con tu nombre de usuario de Google. En este ejemplo hemos creado una clave privada con el nombremy-ssh-key
y un archivo de clave pública llamadomy-ssh-key.pub
.ssh-keygen -t rsa -f ~/.ssh/my-ssh-key -C [USERNAME]
En este caso,
[USERNAME]
es el usuario de la instancia al que vas a aplicar la clave. Si el usuario no existe en la instancia, Compute Engine creará uno automáticamente con el nombre de usuario que hayas introducido en este comando.Restringe el acceso a la clave privada
my-ssh-key
, de manera que solo tú puedas leerla y nadie más pueda escribir en ella.chmod 400 ~/.ssh/my-ssh-key
Ve a la página de metadatos de tu proyecto.
Haz clic en Claves SSH para ver una lista de las claves SSH públicas del proyecto.
Haz clic en el botón Editar para modificar las claves SSH públicas del proyecto.
Puedes acceder al contenido del archivo de clave pública
~/.ssh/my-ssh-key.pub
con el comandocat
.cat ~/.ssh/my-ssh-key.pub
La clave pública aparece en el terminal con el siguiente formato:
ssh-rsa [KEY_VALUE] [USERNAME]
donde:
[KEY_VALUE]
es el valor de la clave pública generada.[USERNAME]
es tu nombre de usuario.
Copia los resultados del comando
cat
y pégalos como un nuevo elemento en la lista de claves SSH.En la parte inferior de la página Claves SSH, haz clic en Guardar para conservar la nueva clave SSH del proyecto.
La clave pública ya está configurada para que funcione en todas las instancias del proyecto.
Utiliza el comando ssh
para conectarte a tus instancias.
Windows
Sigue estos pasos para generar un nuevo par de claves SSH en una estación de trabajo Windows:
Inicia PuTTYgen. Para seguir este ejemplo, solo tienes que ejecutar el archivo
puttygen.exe
que acabas de descargar. Se abrirá una ventana en la que puedes configurar los ajustes de generación de claves.Haz clic en el botón Generate (Generar) para crear un nuevo par de claves. Los parámetros predeterminados funcionan en la mayoría de los casos. Cuando hayas terminado, aparecerá el valor de la clave pública en la herramienta.
En la sección Key comment (Comentarios de la clave), introduce tu nombre de usuario de Google. La clave debería tener esta estructura:
ssh-rsa [KEY_VALUE] [USERNAME]
donde:
[KEY_VALUE]
es el valor de la clave que se ha generado.[USERNAME]
es tu nombre de usuario de Google.
Si quieres, también puedes introducir una frase de contraseña para proteger mejor la clave.
Haz clic en Save private key (Guardar clave privada) para guardarla en un archivo. En este ejemplo, guarda la clave como
my-ssh-key.ppk
.Haz clic en Save public key (Guardar clave pública) para guardarla en un archivo y utilizarla más adelante. De momento, no cierres la ventana de PuTTYgen.
Ve a la página de metadatos de tu proyecto.
Haz clic en Claves SSH para ver una lista de las claves SSH públicas del proyecto.
Haz clic en el botón Editar para modificar las claves SSH públicas del proyecto.
Copia todo el valor de la clave pública que aparece en la herramienta PuTTYgen y pégalo en la lista de claves SSH de la página Metadatos como un nuevo elemento. El valor de la clave pública está en la parte superior de PuTTYgen:
En la parte inferior de la página Claves SSH, haz clic en Guardar para conservar la nueva clave SSH del proyecto.
La clave pública ya está configurada para que funcione en todas las instancias del proyecto. Conéctate a ellas mediante PuTTY.
Conectarse a través de SSH en una estación de trabajo OSX o Linux
Para conectarte a las instancias a través de SSH:
-
Si todavía no has aplicado una clave pública a tu proyecto de la consola de Google Cloud Platform, genera un nuevo par de claves y aplícalo al proyecto.
-
En la consola, busca la IP externa de la instancia a la que quieres conectarte. Ve a la lista de instancias.
-
Utiliza el comando
ssh
para conectarte a la instancia. Indica tu nombre de usuario y la dirección IP externa de la instancia a la que quieres conectarte. Debes utilizar el mismo nombre de usuario de Google que usas para acceder al proyecto. En este ejemplo, la clave privada está 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.
Cuando se establezca la conexión, podrás utilizar el terminal para ejecutar comandos en la instancia. Utiliza el comando exit
para desconectarte de la instancia cuando hayas terminado.
Conectarse a través de PuTTY en una estación de trabajo Windows
Si utilizas Windows, puedes usar la herramienta PuTTY para conectarte a las instancias. Para ello, sigue estos pasos:
-
Si todavía no has aplicado una clave pública a tu proyecto de la consola de Google Cloud Platform, genera un nuevo par de claves y aplícalo al proyecto.
-
Ejecuta PuTTY. Para seguir este ejemplo, basta con ejecutar el archivo
putty.exe
que acabas de descargar. Se abrirá una ventana en la que podrás configurar la conexión. -
En la consola de Google Cloud Platform, encuentra la IP externa de la instancia a la que quieres conectarte. Ve a la lista de instancias.
-
En PuTTY, introduce tu nombre de usuario de Google y la dirección IP externa a la que te quieres conectar en el campo Host Name (Nombre del host). Debes utilizar el mismo nombre de usuario de Google que usas para acceder al proyecto. En este ejemplo, el usuario es
example-user
y la dirección IP externa es104.196.31.103
. -
En el lado izquierdo de la ventana de PuTTY, ve a Connection (Conexión) > SSH > Auth. (Autenticación).
-
Introduce la ruta del archivo de la clave privada en el campo Private key file for authentication (Archivo de la clave privada para la autenticación). En este ejemplo, introduce la ruta al archivo
my-ssh-key.ppk
. -
Haz clic en Open (Abrir) para abrir un terminal con una conexión a la instancia.
Cuando se establezca la conexión, podrás utilizar el terminal para ejecutar comandos en la instancia. Utiliza el comando exit
para desconectarte de la instancia cuando hayas terminado.
Conectarse a instancias sin dirección IP externa
Puedes utilizar una instancia que tenga una dirección IP externa para conectarte en cadena a cualquier instancia de la misma red VPC a través de la dirección IP interna. Puedes conectarte a una instancia aunque no tenga una dirección IP externa.
Para realizar este proceso, deben cumplirse los siguientes requisitos:
- Debe haber dos instancias en la misma red VPC: una que tenga una dirección IP externa y otra que no.
- Debe haber una regla de cortafuegos que admita conexiones SSH en el puerto
22
. Además, esta debe ser una regla predeterminada en la red VPCdefault
y ambas instancias deben pertenecer a dicha red.
Sigue estos pasos para conectarte a una instancia que no tenga una dirección IP externa:
-
Si todavía no has aplicado una clave pública a tu proyecto de la consola de Google Cloud Platform, genera un nuevo par de claves y aplícalo al proyecto.
-
En la máquina local, inicia
ssh-agent
para que administre las claves:eval `ssh-agent`
-
Utiliza el comando
ssh-add
para cargar las claves públicas del ordenador local en el agente y úsalas para todos los comandos SSH a efectos de autenticación.ssh-add ~/.ssh/[PRIVATE_KEY]
En este comando,
[PRIVATE_KEY]
es el nombre del archivo de la clave privada. -
Conecta una instancia a una dirección IP externa e introduce el argumento
-A
para habilitar el reenvío de agentes de autenticación.gcloud compute ssh --ssh-flag="-A" [EXTERNAL_INSTANCE_NAME]
En este caso,
[EXTERNAL_INSTANCE_NAME]
es el nombre de la instancia que tiene una dirección IP externa. -
Después de conectarte a dicha instancia, utiliza
ssh
para conectarte a cualquier otra instancia de la misma red VPC.$ ssh [INTERNAL_INSTANCE_NAME]
En este caso,
[INTERNAL_INSTANCE_NAME]
es el nombre de la segunda instancia a la que tienes que conectarte. -
Cuando hayas terminado, utiliza el comando
exit
para desconectarte de las instancias una a una.$ exit
Conectarse a instancias como usuario root
De forma predeterminada, las imágenes públicas y los sistemas operativos más habituales no permiten los accesos "root" por SSH. Como práctica recomendada, el valor del parámetro PermitRootLogin
del archivo de configuración SSH /etc/ssh/sshd_config
es no
.
Debido a este parámetro, no puedes conectarte a las instancias como usuario "root" aunque especifiques una clave SSH para root
en tu proyecto o en los metadatos de la instancia en cuestión.
Un usuario puede conseguir permisos "root" si ejecuta los comandos a través de sudo
.