Configurar SSH en VirtualBox Ubuntu Server: Guía de Desarrollo Completa

Guía Completa para Configurar un Entorno de Desarrollo SSH con VirtualBox + Ubuntu Server 24.04

A partir de 2025, usar la función Remote SSH de VSCode se ha convertido en la mejor práctica al construir un entorno de desarrollo con VirtualBox. Este artículo proporciona instrucciones detalladas para que incluso los principiantes puedan configurar su entorno de manera confiable.

Índice

Introducción: Por Qué es Necesaria la Conexión SSH

Cuando instalas Ubuntu Server en VirtualBox, por defecto trabajarás con una pantalla de consola negra. Este entorno tiene varias limitaciones:

  • Sin funcionalidad de copiar y pegar
  • Desplazamiento de pantalla incómodo
  • Entrada de caracteres especiales difícil
  • Edición de archivos ineficiente

Al configurar la conexión SSH, puedes operar cómodamente desde tu terminal familiar o VSCode.

Software y Versiones Requeridos

  • VirtualBox: 7.2.2 o posterior (última versión a enero de 2025)
  • Ubuntu Server: 24.04 LTS (con soporte hasta abril de 2029)
  • Windows Terminal o Tera Term (Windows)
  • Visual Studio Code + extensión Remote SSH (recomendado)

Paso 1: Descargar Ubuntu Server 24.04

  1. Visita el sitio web oficial de Ubuntu
  2. Descarga Ubuntu Server 24.04 LTS (aproximadamente 3GB)
  3. Recuerda dónde guardaste el archivo ISO

Paso 2: Crear una Máquina Virtual en VirtualBox

Creación de la Máquina Virtual

  1. Inicia VirtualBox y haz clic en el botón “Nueva”
  2. Crea una máquina virtual con la siguiente configuración:
    • Nombre: Ubuntu Server 24.04 (o cualquier nombre que prefieras)
    • Tipo: Linux
    • Versión: Ubuntu (64-bit)
    • Tamaño de memoria: 2048MB o más (4096MB recomendado)
    • Disco duro: Crear nuevo (formato VDI, asignación dinámica, 20GB o más)

Configuración del Archivo ISO

  1. Selecciona la máquina virtual creada y haz clic en “Configuración”
  2. Selecciona “Almacenamiento”
  3. Haz clic en el icono de disco vacío bajo “Controlador: IDE”
  4. Desde el icono de disco a la derecha, selecciona “Seleccionar archivo de disco”
  5. Selecciona el archivo ISO de Ubuntu Server 24.04 descargado

Paso 3: Instalar Ubuntu Server

Inicio de la Instalación

  1. Inicia la máquina virtual
  2. Selecciona “English” para el idioma (no se recomienda otros idiomas para la versión servidor)
  3. Selecciona tu distribución de teclado
  4. Deja la configuración de red por defecto y haz clic en “Done”
  5. Deja la configuración de proxy en blanco y haz clic en “Done”
  6. Deja el servidor espejo por defecto y haz clic en “Done”

Configuración de Almacenamiento

  1. Selecciona “Use an entire disk”
  2. Revisa la configuración de particiones y haz clic en “Done”
  3. Haz clic en “Continue” para confirmar

Configuración de Cuenta (Importante)

  1. Ingresa la siguiente información:
    • Your name: Tu nombre (ej., Juan Pérez)
    • Your server’s name: Nombre del servidor (ej., ubuntu-server)
    • Pick a username: Nombre de usuario (ej., juan) *solo minúsculas
    • Choose a password: Establece una contraseña fuerte
    • Confirm your password: Vuelve a ingresar la contraseña

Instalación del Servidor SSH (Importante)

  1. Marca “Install OpenSSH server”
  2. Haz clic en “Done”
  3. No selecciones nada en Featured Server Snaps y haz clic en “Done”

Una vez completada la instalación, selecciona “Reboot Now”.

Paso 4: Primer Inicio y Confirmación de Dirección IP

Iniciar Sesión en la Máquina Virtual

  1. Después del reinicio, inicia sesión con tu nombre de usuario y contraseña
  2. Verifica la dirección IP con el siguiente comando:
ip addr show

O bien:

hostname -I

Típicamente, se mostrará una dirección IP como 10.0.2.15. Esta es la dirección de la red interna NAT de VirtualBox.

Verificar el Estado del Servidor SSH

sudo systemctl status ssh

Confirma que muestre “active (running)”. Si no está ejecutándose:

sudo systemctl start ssh
sudo systemctl enable ssh

Configuración del Firewall

UFW está deshabilitado por defecto en Ubuntu 24.04, pero verifica para estar seguro:

sudo ufw status

Si muestra “Status: inactive”, no hay problema. Si está habilitado:

sudo ufw allow ssh
sudo ufw allow 22/tcp

Paso 5: Configurar el Reenvío de Puertos en VirtualBox

Esta es la configuración más crítica. Permíteme explicar en detalle.

¿Qué es el Reenvío de Puertos?

En el modo NAT de VirtualBox, la máquina virtual existe dentro de su propia red privada (10.0.2.0/24). No puede ser accedida directamente desde el exterior (la máquina anfitriona). Al configurar el reenvío de puertos, puedes redirigir el acceso a un puerto específico en la máquina anfitriona hacia la máquina virtual.

Pasos de Configuración

  1. Apaga la máquina virtual:
    sudo shutdown -h now
  2. En VirtualBox Manager, selecciona la máquina virtual y haz clic en “Configuración”
  3. Selecciona “Red” → “Adaptador 1”
  4. Haz clic en “Avanzado” para mostrar la configuración detallada
  5. Haz clic en el botón “Reenvío de puertos”
  6. Haz clic en el icono “+” para agregar una nueva regla
  7. Ingresa la siguiente configuración:
    • Nombre: SSH (cualquier nombre que prefieras)
    • Protocolo: TCP
    • IP anfitrión: 127.0.0.1 (o dejar en blanco)
    • Puerto anfitrión: 2222 (cualquier número 1024 o superior)
    • IP invitado: 10.0.2.15 (IP de la máquina virtual)
    • Puerto invitado: 22
    *Usar el puerto 22 para el puerto anfitrión puede entrar en conflicto con el servicio SSH de la máquina anfitriona, por lo que se recomienda 2222
  8. Haz clic en “Aceptar” para guardar la configuración

Paso 6: Probar la Conexión SSH

Para Windows

Usando Windows Terminal / PowerShell:

ssh -p 2222 usuario@127.0.0.1

Ejemplo:

ssh -p 2222 juan@127.0.0.1

Usando Tera Term:

  1. Inicia Tera Term
  2. Ingresa lo siguiente:
    • Host: 127.0.0.1
    • Puerto TCP: 2222
  3. Haz clic en “Aceptar”
  4. Ingresa nombre de usuario y contraseña

Para macOS / Linux

ssh -p 2222 usuario@127.0.0.1

Notas sobre la Conexión

En la primera conexión, verás este mensaje:

The authenticity of host '[127.0.0.1]:2222' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxx
Are you sure you want to continue connecting (yes/no/[fingerprint])?

Escribe “yes” y presiona Enter.

Paso 7: Conectar con VSCode Remote SSH (Recomendado)

Usar la extensión Remote SSH de VSCode proporciona un entorno cómodo como si estuvieras desarrollando localmente.

Instalar la Extensión Remote SSH

  1. Inicia VSCode
  2. Haz clic en el icono de extensiones a la izquierda (o Ctrl+Shift+X)
  3. Busca “Remote – SSH”
  4. Instala “Remote – SSH” proporcionado por Microsoft

Crear Archivo de Configuración SSH

  1. Abre la paleta de comandos en VSCode (Ctrl+Shift+P o F1)
  2. Selecciona “Remote-SSH: Open SSH Configuration File”
  3. Selecciona ~/.ssh/config (Para Windows: C:\Users\usuario\.ssh\config)
  4. Agrega la siguiente configuración:
Host ubuntu-server
    HostName 127.0.0.1
    Port 2222
    User usuario

Ejemplo:

Host ubuntu-server
    HostName 127.0.0.1
    Port 2222
    User juan
  1. Guarda el archivo

Conectar desde VSCode

  1. Abre la paleta de comandos (Ctrl+Shift+P)
  2. Selecciona “Remote-SSH: Connect to Host”
  3. Selecciona “ubuntu-server”
  4. Se abre una nueva ventana, ingresa tu contraseña
  5. Cuando se conecte exitosamente, aparecerá “SSH: ubuntu-server” en la esquina inferior izquierda

Configurar el Entorno de Desarrollo en VSCode

Después de conectar, las siguientes operaciones se vuelven posibles:

  • Edición de archivos (con resaltado de sintaxis)
  • Uso de terminal integrado
  • Operaciones Git
  • Instalación remota de extensiones
  • Ejecución de depuración

Paso 8: Configurar Autenticación por Clave SSH (Mejora de Seguridad)

Configura la autenticación por clave SSH, que es más segura que la autenticación por contraseña.

Generar Claves en Windows (PowerShell)

ssh-keygen -t ed25519 -C "tu-email@example.com"

Copiar la Clave Pública a la Máquina Virtual

Método 1: Copia Manual

Muestra el contenido de la clave pública:

cat ~/.ssh/id_ed25519.pub

Conéctate por SSH y ejecuta lo siguiente en la máquina virtual:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "pega el contenido de la clave pública aquí" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Método 2: Usar ssh-copy-id (vía WSL)

ssh-copy-id -p 2222 usuario@127.0.0.1

Actualizar la Configuración de VSCode

Agrega lo siguiente a ~/.ssh/config:

Host ubuntu-server
    HostName 127.0.0.1
    Port 2222
    User usuario
    IdentityFile ~/.ssh/id_ed25519

Paso 9: Iniciar en Modo sin Interfaz Gráfica (Uso Conveniente)

Puedes iniciar la máquina virtual en segundo plano sin mostrar la ventana GUI.

Iniciar desde Línea de Comandos

VBoxManage startvm "Ubuntu Server 24.04" --type headless

Detener

VBoxManage controlvm "Ubuntu Server 24.04" poweroff

O conéctate vía SSH y ejecuta:

sudo shutdown -h now

Solución de Problemas

Problema 1: No se Puede Conectar por SSH

Causas y Soluciones:

  1. El servidor SSH no está ejecutándose
    sudo systemctl start ssh
    sudo systemctl enable ssh
  2. La configuración de reenvío de puertos es incorrecta
    • Verifica que la IP del invitado sea correcta (usualmente 10.0.2.15)
    • Verifica que el puerto anfitrión no esté ya en uso
  3. Firewall de Windows Defender
    • Permite la comunicación de VirtualBox

Problema 2: Error de Conexión en VSCode

Soluciones:

  1. Limpia el archivo known_hosts:
    Remove-Item ~/.ssh/known_hosts
  2. Verifica la sintaxis del archivo de configuración SSH

Problema 3: La Máquina Virtual es Lenta

Soluciones:

  1. Aumenta la memoria (4GB o más recomendado)
  2. Aumenta el número de núcleos de CPU (Configuración → Sistema → Procesador)
  3. Habilita el soporte de virtualización (VT-x/AMD-V en configuración BIOS)

Opciones de Configuración de Red

NAT + Reenvío de Puertos (Método de Este Artículo)

Ventajas:

  • Configuración simple
  • Alta seguridad
  • Accesible solo desde la máquina anfitriona

Desventajas:

  • No puede ser accedido desde otras PCs en la LAN

Adaptador Puente

Ventajas:

  • Accesible desde cualquier lugar en la LAN
  • Puede ser tratado como una máquina real

Desventajas:

  • Requiere un router
  • Consume una dirección IP separada

Adaptador Solo-Anfitrión + NAT (Dos Adaptadores)

Ventajas:

  • Combina conexión a internet y conexión al anfitrión
  • Configuración más flexible

Desventajas:

  • Configuración ligeramente compleja

Resumen

La combinación de VirtualBox + Ubuntu Server 24.04 + VSCode Remote SSH es uno de los entornos de desarrollo más eficientes a partir de 2025. Siguiendo los pasos de este artículo, incluso los principiantes pueden configurar su entorno de manera confiable.

La función Remote SSH de VSCode es particularmente innovadora, permitiendo desarrollar dentro de una máquina virtual con la misma sensación que el desarrollo local. Esto permite una experiencia de desarrollo unificada en entornos Windows, macOS y Linux.

Dado que la conexión SSH es fundamental también en entornos en la nube (AWS, Azure, GCP), la experiencia de configurar este entorno será valiosa en el futuro.

El Siguiente Artículo Fue Publicado en 2021 y Se Conserva Aquí para Estudiar el Proceso de Evolución

Instalé Ubuntu Minimal usando VirtualBox, pero operarlo era difícil porque mostraba una pantalla de consola negra en lugar de una interfaz de escritorio. Así que decidí conectarme a esta máquina virtual usando Tera Term. Dado que este tipo de entorno es abrumadoramente común en la nube, recomiendo que todos construyan un entorno con fines de aprendizaje.

Procedamos. Quiero hacer una conexión SSH, así que verificaré si el software apropiado está instalado.

sudo systemctl status sshd

No está instalado, así que lo instalaré.

sudo apt install ssh

También verificaré el estado de apertura de puertos del firewall. Mostró “inactive”, lo que significa que aunque está instalado, no se está ejecutando, por lo que entiendo que las conexiones no serán rechazadas.

sudo ufw status

A continuación, necesito configurar VirtualBox en sí, así que apagaré el sistema operativo. Antes de apagar, tomaré nota de la dirección IP de esta máquina virtual.

Haz clic en Configuración en VirtualBox. Selecciona Red, luego haz clic en “Avanzado” en la pestaña Adaptador para mostrar los detalles.

Configuración de red de VirtualBox

Usaré el reenvío de puertos disponible aquí. Un puerto configurado con reenvío de puertos funciona como una puerta de enlace para el puerto de dirección asignado, y todos los paquetes enviados y recibidos externamente se transfieren automáticamente, haciendo posible la conexión SSH a la máquina virtual.

Crearé una nueva regla. El nombre puede ser arbitrario, e ingresaré la dirección IP de la PC que estoy operando en IP Anfitrión. Puedes encontrar la dirección IP ingresando el siguiente comando en el Símbolo del sistema:

ipconfig

Establecí el Puerto Anfitrión en 5050. Ingresa la dirección IP de la máquina virtual en IP Invitado, e ingresa 22 en Puerto Invitado.

Configuración de reenvío de puertos

Ahora las direcciones IP de la PC operadora y la máquina virtual de VirtualBox pueden enviar y recibir. Iniciaré la máquina virtual. En este momento, si aparece una advertencia de Windows Defender, permite el acceso.

Alerta de Firewall de Windows Defender

Verificaré en el Símbolo del sistema si el envío y recepción es realmente posible.

telnet 192.168.26.105 5050

Apareció la pantalla de OpenSSH y se confirmó la conexión.

Prueba de conexión Telnet

Abre Tera Term e ingresa el Host y Puerto TCP como sigue:

Host: user@192.168.26.105 Puerto TCP: 5050

Diálogo de conexión de Tera Term

Cuando presionas el botón Aceptar, aparece una pantalla de autenticación, así que inicia sesión ingresando el nombre de usuario y contraseña de la máquina virtual Ubuntu.

Pantalla de autenticación SSH

Ya que estamos en esto, probemos también conectarnos con claves de autenticación. Crearé un directorio en la máquina virtual que se necesitará más adelante. Crearé un directorio llamado .ssh en el directorio home y otorgaré los permisos de acceso apropiados.

mkdir .ssh

# Cambiar permisos del directorio a 700 (solo el propietario puede leer, escribir, ejecutar)
chmod 700 .ssh

Ahora, haz clic en “Generación de Clave SSH” en la pestaña Configuración de Tera Term. Presiona “Generar” para guardar las claves pública y privada.

Generación de claves SSH en Tera Term

La clave pública tiene una extensión .pub, y transferiré esta a la máquina virtual. La transferencia también es posible usando la funcionalidad de Tera Term. SSH SCP en la pestaña Archivo hace esto. En la sección “From” en la parte superior, cargaré la clave pública con extensión .pub que acaba de ser generada. Dejé la sección “To” en blanco. Cuando está en blanco, el archivo se transfiere al directorio actual.

Transferencia de archivos SCP

Copiaré el archivo .pub al directorio .ssh que creé anteriormente con un nombre de archivo diferente. También estableceré los permisos apropiados para el archivo creado.

# Copiar la clave pública al directorio .ssh como un archivo llamado authorized_keys
cat id_rsa.pub >> .ssh/authorized_keys

# Cambiar permisos del archivo authorized_keys a 600 (solo el propietario puede leer y escribir)
chmod 600 .ssh/authorized_keys

# Eliminar la clave pública transferida ya que ya no es necesaria
rm id_rsa.pub

Al conectar con Tera Term, ahora usaré conexión basada en clave. Seleccionaré la clave privada y me conectaré.

Autenticación basada en clave

If you like this article, please
Follow !

¡Comparte esta publicación!
Índice