Démarrer une application GUI avec SSH

Mis à jour le dimanche 11 juillet 2021 par johackim

Voici un petit tutoriel pour démarrer une application graphique à distance via SSH.

1. Activer le X11Forwarding

Commencez par ajouter le paramètre X11Forwarding yes au fichier /etc/ssh/sshd_config de votre serveur puis redémarrer votre serveur SSH :

echo 'X11Forwarding yes' | sudo tee -a /etc/ssh/sshd_config
sudo systemctl restart sshd

2. Démarrer votre application

Connectez-vous à votre serveur via une commande SSH avec le paramètre -X suivi du nom de votre application (ex: mousepad) :

ssh -X <user>@<ip> mousepad

3. Optimiser la vitesse d'affichage

Pour accélerer la vitesse d'affichage, vous pouvez activer la compression avec le paramètre -C et utiliser un cipher plus rapide (ex: aes128-ctr) :

ssh -X -C -c aes128-ctr <user>@<ip>

Pour consulter la liste des ciphers disponibles de votre serveur SSH, utilisez la commande sudo sshd -T | grep -i cipher.

Activez le multiplexing en ajoutant les lignes suivante dans le fichier ~/.ssh/config de votre machine hôte :

Host *
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p

Maintenant vous avez accès à vos applications graphiques distantes directement depuis votre machine hôte 😀🎉.

PS : Si comme moi vous rencontrez un problème de touche de clavier non fonctionelle (ex: altgr), utilisez le paramètre -Y au lieu de -X.