Si jamais tu veux utiliser VSCodium (ou VSCode) pour travailler sur un projet via Remote-SSH, isolé dans son propre jail FreeBSD, tu vas te heurter à un problème : FreeBSD n’est pas officiellement supporté par le “server” de VS Code qui est déployé sur l’hôte distant.
Heureusement, il y a une solution. Remote-SSH fonctionne comme ça : ton éditeur local se connecte en SSH et déploie un “server” (binaires + runtime) sur l’hôte distant afin d’y exécuter des extensions et des services.
Comme ce server est prévu pour Linux (glibc, layout, etc.), ça casse sur FreeBSD. Il faut donc lui fournir un Linux “suffisant” via Linuxulator + linux_base-rl9 (Rocky Linux 9 dans compat) — et c’est là que la magie de FreeBSD opère.
Étape 1 — Hôte FreeBSD : activer Linuxulator + base Rocky Linux 9
Sur l’hôte (pas dans le jail), active Linuxulator et installe la base RL9 :
C’est le minimum nécessaire pour que le server distant dispose d’un userspace Linux moderne.
Étape 2 — Configure ton jail Bastille
Dans la config du jail (selon ton layout Bastille, typiquement dans /usr/local/bastille/jails/MYJAIL/jail.conf), assure-toi d’utiliser devfs avec le ruleset 13 (ça a son histoire) et d’activer les permissions supplémentaires dont tu as besoin pour que Linuxulator fonctionne correctement :
Il devra également monter les FS nécessaires à Linux (linprocfs, linsysfs et devfs) à l’intérieur du jail, et utiliser la base Linux fournie par l’hôte. Tu devras ajouter ce qui suit dans le fstab de ton 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
Étape 3 — Configure ton client SSH
L’astuce la plus simple pour que Remote-SSH fonctionne est de forcer, à la connexion, l’exécution d’une commande distante en bash via Linuxulator :
Sur ta machine locale, dans ~/.ssh/config (ou le fichier de config que tu utilises pour Remote-SSH) :
Option extra : changer le shell de l’utilisateur en bash (Linuxulator)
Une autre option plus directe — si, pour une raison quelconque, le RemoteCommand de la config ne fonctionne pas — (en gardant en tête que cela affectera aussi ton shell SSH “normal”), consiste à remplacer le shell de l’utilisateur SSH du jail par le bash de Linuxulator : /compat/linux/usr/bin/bash :
-
Ajoute ce chemin à
/etc/shellsà l’intérieur du jail (sinon,chshpeut le refuser). -
Change le shell de l’utilisateur :
chsh -s /compat/linux/usr/bin/bash tonutilisateur
Avec ça, tu pourras utiliser VSCodium sans (trop de) problèmes avec ton projet hébergé sur un serveur FreeBSD, dans un jail.