SSH Forward
Depuis quelques temps, j’utilise plusieurs ordinateurs différents au quotidien. (Je compte également mon smartphone).
J’ai aussi depuis fort longtemps un serveur pour quelques applications qui nécessite une IP publique ou un réseau rapide.
Bref, j’utilise depuis mai un serveur comme station de travail principale, avec un setup
- ssh-tmux qui suffit a la plupart de mes besoins
- webapps comme Jupyter ou Kafka-ui
Depuis peu je me retrouve a utiliser un RaspberryPI comme desktop. Je commence a avoir envie de faire tourner plus d’application sur mon serveur, et economiser du CPU et de la RAM locale.
Donc, est-ce qu’on peut forward X-server via ssh et utiliser le desktop uniquement comme un client X ? Est-ce que c’est rentable ?
Testons.
Configuration
Dans la suite, on va noter Serveur la machine distante et Client la machine avec laquelle on ssh.
Verification de la presence de xauth sur le Serveur
$ which xauth
$
S’il n’est pas installé, il faut le faire:
$ apt-get install xauth
$ which xauth
/usr/bin/xauth
Authorisation du forward X11 via ssh
Dans /etc/ssh/sshd_config, il faut authoriser le forward X11
X11Forwarding yes
Test avec firefox (via Snap)
$ ssh -CXY hubert@hubert.dubois.fr
- C: compression
- X: X11 forward
- Y: trusted
puis
$ firefox
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
Error: cannot open display: localhost:10.0
X11 connection rejected because of wrong authentication
Bon, il y a un soucis.
Essayons d’installer un windows manager et tout le X en dépendances:
$ apt-get install i3 x11-apps
xeyes fonctionne !
$ ssh -CXY hubert@hubert.dubois.fr xeyes
mais firefox, toujours pas :(
$ ssh -CXY hubert@hubert.dubois.fr firefox
X11 connection rejected because of wrong authentication.
X11 connection rejected because of wrong authentication.
Error: cannot open display: localhost:11.0
X11 connection rejected because of wrong authentication.
Alors apparement il y aurait un problème avec les installations via Snap. Il faut exporter XAUTHORITY=~/.Xauthority
export XAUTHORITY=$HOME/.Xauthority
X11 Forward de Discord (.deb)
Alors oui mais non, ça ne change rien. C’est le moment de virer Snap du systeme et d’avoir la paix. Je viens de tester avec discord, je n’ai rencontré aucun problème.
Installation sur Serveur:
$ wget "https://discord.com/api/download?platform=linux&format=deb" -O discord.deb
$ sudo apt-get install ./discord.deb
Lancement de discord depuis Client:
$ ssh -CXY hubert@hubert.dubois.fr discord
all good.
Cleanup de Snap
$ snap remove --purge firefox
$ apt remove --autoremove snapd
$ echo "Package: snapd
Pin: release a=*
Pin-Priority: -10" >> /etc/apt/preferences.d/nosnap.pref
$ apt update
Cf DebugPoint
Réinstallation de firefox (.deb)
$ add-apt-repository ppa:mozillateam/ppa
$ apt update
$ apt install -t 'o=LP-PPA-mozillateam' firefox
Victoire
Je peux maintenant facilement exec une application GUI via ssh depuis mon RaspberryPI:
Il reste maintenant à savoir si c’est réellement utile et agréable à utiliser au quotidien.