Il nous arrive très souvent de devoir écrire des scripts ou bien du code directement sur les machines virtuelles de développement (parce que notre système d’exploitation ne supporte pas Docker… par exemple). Ce n’est pas que je n’aime pas utiliser les éditeurs comme VI, VIM, emacs ou nano mais j’ai tout de même mes habitudes de développeurs ! Mon serveur ubuntu n’a pas d’interface graphique, je m’y connecte en ssh avec putty (en mode console) 🙁

vi cheat sheet

Les raccourcis VI/VIM (www.viemu.com)

Mon OPS avisé m’a présenté une solution (vraiment pas toute jeune) mais efficace ! Le déport d’affichage avec SSH : « X11 Forwarding« . Cela permet d’exécuter des applications graphiques du genre VSCode, Chrome ou autre en déportant l’affichage de serveur Linux sur mon poste Windows au travers d’une connexion SSH.

Voici comment cela se passe :

x11 forwardingX11 Forwarding

Je démarre mon IDE depuis mon terminal putty sous windows. L’exécution de l’application graphique (l’IDE) se fait sur le serveur Linux qui est incapable de l’afficher mais il sait générer l’affichage qui transitera au travers de la connexion SSH à l’aide du client SSH et graphique adéquate. Une fois les informations reçues par notre client, Xming (le système de fenêtrage x11) va s’occuper de l’interprétation de ces informations et orienter ces informations vers un affichage graphique. Ce processus, qui peut sembler complexe expliqué comme cela, est en fin de compte assez simple à mettre en place.

Comment le paramétrer ?

Coté server : xvfb (X Virtual frame Buffer), un serveur X « virtuel »

$ sudo apt-get install xvfb xdm xfonts-base
$ sudo apt-get install twm « xfonts-100dpi* » xterm

Activer X11Forwarding dans la configuration du serveur SSH distant:

# vi /etc/ssh/sshd_config
X11Forwarding yes
AllowTcpForwarding yes
X11DisplayOffset 10

Coté Windows : Démarrer une connexion SSH avec un client SSH (Putty) autorisant le X11 Forwarding et s’assurer que le client Xming est démarré sur le poste client.

Il ne vous reste plus qu’à installer VSCode (par exemple), c’est un IDE gratuit, très léger, simple et rapide, entièrement réalisé à l’aide de TypeScript, Electron et Chromium) sur votre VM Linux (https://code.visualstudio.com/docs/setup/linux) et de le démarrer sur votre machine virtuelle :

$ code .

Profitez et améliorez votre productivité !