Cómo acceder por SSH a tu VirtualBox Guest

Category: VirtualBox 124 0

Hay ocasiones en las que quieres tener un acceso remoto a tu VM. Tal vez, es sólo un sistema operativo de servidor que se ejecuta como una VM, donde usted prueba sus aplicaciones antes de desplegarlas realmente.

Tener la capacidad de SSH en su sistema operativo invitado puede ser útil cuando no quiere usar la GUI de su máquina virtual. Simplemente inicie su VM en un modo sin cabeza y SSH dentro y fuera de ella sin tener múltiples ventanas abiertas en su terminal.

Para aquellos que son nuevos en la idea de SSH, tendremos una breve introducción al funcionamiento de SSH antes de sumergirse en la configuración. También necesitaremos discutir las configuraciones relacionadas con la red de su VM para asegurarse de que tiene acceso a esa VM desde cualquier lugar de su LAN.

¿Cómo funcionan las llaves SSH?

Este es un modelo simplificado de cómo funciona SSH. Usted crea un par de llaves en su computadora local. Una clave pública y una clave privada. Los mensajes encriptados usando la clave pública pueden ser descifrados usando la clave privada y viceversa. Estas claves se almacenan normalmente en su ordenador local en una ruta ~.sshid_rsa(clave privada) y~.sshid_rsa.pem(la clave pública).

Entonces vas a tu servidor remoto, entras en una consola como usuario normal o root, abres el archivo ~.sshauthorized_key de ese servidor. Aquí introduces el contenido de tu clave pública tal cual. Una vez hecho esto, puedes hacer ssh como ese usuario en el servidor cuyo directorio .ssh tiene las authorized_keys, desde tu dispositivo local.

La extensión .pem significa que ese archivo es la clave pública que puedes compartir con cualquiera. La parte id_rsa sólo significa qué cifrado se está utilizando (en este caso resulta ser RSA). La clave privada puede protegerse además con una frase de contraseña que tendrás que introducir cada vez que quieras entrar en un servidor remoto usando esa clave privada.

Si tienes un Mac, Linux o cualquier otro sistema tipo UNIX como ordenador local, puedes generar y gestionar las claves utilizando el terminal, y también puedes hacer SSH en servidores remotos utilizando el mismo terminal. Para los usuarios de Windows, sugeriría usar PuTTY o Git Bash, siendo este último mi preferencia personal. Los comandos son prácticamente los mismos una vez que tienes un cliente SSH.

Configuración de llaves SSH

Primero asegúrese, si no hay ssh-keys ya en su directorio de inicio. Comprueba el contenido de la carpeta .ssh de tu directorio personal. Si tiene dudas, haga una copia de seguridad de su contenido antes de ejecutar el siguiente comando. Programas como Filezilla utilizan claves SSH todo el tiempo, sin que el usuario lo sepa, por lo que este paso es bastante crucial.

En tu máquina local , abre la terminal e introduce el comando

$ ssh-keygen

A continuación aparecerán las siguientes peticiones con los valores entre paréntesis indicando los valores por defecto. Continúe con las indicaciones y dé a sus claves una frase de contraseña segura.

Verifique que las claves se han creado comprobando el contenido de su carpeta ~.ssh.

$ ls -al ~.ssh

Si ves que los archivos coinciden con los valores por defecto mostrados en el prompt de ssh-keygen entonces todo ha funcionado bien.

Ahora abra una consola a su Máquina Virtual . Primero compruebe si su VM tiene un servidor SSH en funcionamiento o no.

$ service sshd status

Si no está instalado, utilice su gestor de paquetes para buscar e instalar el servidor OpenSSH. Una vez hecho esto asegúrate de que el firewall de tu VM está abierto en el puerto número 22. Por ejemplo, si estás usando Ubuntu como VM, el firewall por defecto ufw debería estar deshabilitado o debería permitir las conexiones del puerto 22 así:

$ sudo ufw status

Si no está abierto el puerto 22, utilice el siguiente comando:

$ sudo ufw allow ssh

A continuación, abra el archivo ~.sshauthorized_keys en su VM, utilizando su editor de texto favorito. Es posible que quieras habilitar el portapapeles host-to-guest o bidireccional para este siguiente paso.

Dentro de este archivo (en la parte inferior del archivo, si no está vacío) pegue el contenido de su clave pública. La última parte donde dice tu nombre y el host local donde se generaron las claves no es tan importante como el resto de la cadena.

(Opcional) No usar claves SSH

Si confías en tu red local, entonces puedes usar el método menos seguro de usar tu contraseña UNIX, para hacer ssh en tu VM. Abra el archivo etcsshsshd_config en su VM y reemplace la línea:

PasswordAuthentication no
A
PasswordAuthentication yes

Una vez que esté en su lugar, reinicie su servidor SSH.

$ service sshd restart

Ahora puedes usar la contraseña normal que usas para entrar a tu VM para hacer ssh en ella también.

Su máquina virtual y su red

Para que puedas hacer ssh en tu VM, tanto tu ordenador local (el que tiene la clave privada) como la VM deben estar en la misma red. Así podrás llegar a la dirección IP de la VM. Te mostraremos cómo añadir la VM a tu LAN.

Consideremos el ejemplo de una configuración típica de un router doméstico. Tu ordenador, junto con otros dispositivos, está conectado al router doméstico. Este router también actúa como un servidor DHCP, lo que significa que asigna a cada dispositivo que está conectado a él, una única dirección IP privada. Tu ordenador de sobremesa recibe una IP, al igual que tu teléfono y tu portátil. Sólo los dispositivos que están conectados a este router pueden hablar entre sí a través de sus direcciones IP.

Habilita el modo de red puente en la configuración de tu VM y la VM aparecerá como conectada a tu router doméstico (o a un servidor DHCP similar) con una IP privada. Si un segundo dispositivo está conectado a la misma red (por ejemplo, al mismo router de casa) entonces se puede utilizar para hacer ssh en la VM.

Abre el Gestor de VirtualBox, selecciona tu VM de destino, abre la Configuración → Red y selecciona Red Puente en lugar de NAT.

Como puedes ver mi host está conectado usando Wireless por lo que esa conexión también es compartida por la VM, si estás usando Ethernet, aparecería un nombre de interfaz diferente lo cual está bien.

Ahora, mi VM, que se llama ubuntuvm, se muestra en mi configuración de la LAN de la siguiente manera. Comprueba la configuración de tu router para ver si te funciona lo mismo.

Una vez que sepas la dirección IP de tu VM, puedes entrar en ella por SSH ejecutando el comando:

$ ssh @dirección.ip.de.tu.vm

Si has puesto una frase de contraseña para tu clave privada en los pasos anteriores, se te pedirá que la vuelvas a introducir.

¡Eso es! Ahora puedes arrancar tus VMs en modo headless y simplemente hacer ssh en ellas desde cualquier lugar de tu casa. Espero que hayas encontrado este tutorial interesante, haznos saber si hay algún tema que quieras que cubramos.

Related Articles

Add Comment