Si alguna vez quisieras utilizar VSCodium (o VSCode) para trabajar en un proyecto utilizando Remote-SSH que está aislado en su propio jail FreeBSD tendrás el problema de que FreeBSD no está soportado oficialmente por el servidor de vscode que se instala en el repositorio remoto.
Afortunadamente existe solución. Remote-SSH funciona así: tu editor local se conecta por SSH y despliega un “server” (binarios + runtime) en el host remoto para ejecutar extensiones y servicios allí.
Como ese server está pensado para Linux (glibc, layout, etc.), en FreeBSD falla. Necesitamos darle un Linux “suficiente” vía Linuxulator + linux_base-rl9 (Rocky Linux 9 en compat) y esta es la magia de FreeBSD.
Paso 1 — Host FreeBSD: activar Linuxulator + Rocky Linux 9 base
En el host (no en el jail), habilita Linuxulator e instala la base RL9:
Esto es lo mínimo que necesitas para que el server remoto tenga un userspace Linux moderno.
Paso 2 — Configura tu jail Bastille
En la config del jail (según tu layout de Bastille, típico en /usr/local/bastille/jails/MYJAIL/jail.conf), asegúrate de usar devfs con ruleset 13 (esto tiene su historia) y habilitar los permisos extra que necesitas para que Linuxulator funcione correctamente:
Además necesitará montar los fs (linprocfs, linsysfs y devfs) necesarios para linux dentro del jail y utilizar el linux base del host. Deberás añadir lo siguiente en el fstab de tu jail:
/compat/linux /usr/local/bastille/jails/MYJAIL/root/compat/linux nullfs ro 0 0
linproc /usr/local/bastille/jails/MYJAIL/root/compat/linux/proc linprocfs rw 0 0
linsys /usr/local/bastille/jails/MYJAIL/root/compat/linux/sys linsysfs rw 0 0
devfs /usr/local/bastille/jails/MYJAIL/root/compat/linux/dev devfs rw,ruleset=13 0 0
Paso 3 — Configura tu cliente SSH
El truco más simple para que Remote-SSH funcione es forzar que, al conectar, el comando remoto sea bash de Linuxulator:
En tu máquina local, en ~/.ssh/config (o el config que tengas asignado a remote ssh):
Opción extra: cambiar el shell del usuario a bash (Linuxulator)
Otra opción mas directa si por algún motivo no te funciona el RemoteCommand de la config, aunque esto influirá en tu shell normal ssh, es modificar la shell del usuario ssh de tu jail por bash de Linuxulator:/compat/linux/usr/bin/bash:
-
Añade esa ruta a
/etc/shellsdentro del jail (si no,chshte lo puede rechazar). -
Cambia el shell del usuario:
chsh -s /compat/linux/usr/bin/bash tuusuario
Con esto ya podrás utilizar VSCodium sin (mayores) problemas con tu proyecto alojado en un servidor FreeBSD en un jail.