134 votes

Comment démarrer un logiciel GUI sur un PC Linux distant via SSH ?

Parfois, j'ai besoin de lancer le lecteur multimédia XMBC ou un autre logiciel GUI sur l'un de mes PC distants (petit PC Xubuntu utilisé comme media center).

Habituellement, je fais cela en démarrant un serveur X11vnc sur le PC distant via SSH, puis en me connectant avec un client Xvnc au bureau Xfce.

Existe-t-il un moyen de lancer un logiciel GUI sur un PC Linux distant via SSH ?

Gracias.

168voto

Mufaka Points 54

Oui. Vous devez juste lancer export DISPLAY=:0 (ou quel que soit le numéro de l'écran distant) dans votre session ssh et les programmes seront exécutés sur l'écran distant. Un exemple rapide :

oli@bert:~$ ssh tim
oli@tim:~$ export DISPLAY=:0
oli@tim:~$ firefox

Firefox fonctionne maintenant sur tim de l'écran.

Cependant, lorsque vous fermez votre session ssh, la plupart du temps, l'application distante se ferme. Si vous voulez vous déconnecter de ssh mais laisser l'application en cours d'exécution, vous devez la lancer d'une manière spéciale en utilisant quelque chose comme screen (qui maintient la session ssh en arrière-plan) ou nohup ou une autre méthode. Pour plus d'informations sur ce sujet il y a eu récemment une autre question à ce sujet .

Vous pouvez raccourcir tout cela en une seule commande qui se connectera, exportera l'affichage en ligne et lancera l'application d'une manière qui ne la fermera pas après la fin de la session ssh :

ssh tim "DISPLAY=:0 nohup firefox"

14voto

ndemou Points 1640

Cela dépend de l'endroit où vous souhaitez que l'application soit affichée.

Pour afficher l'application sur votre PC local

Vous devez d'abord vous connecter à l'ordinateur distant avec l'option supplémentaire -Y et lancez l'application (par exemple firefox) :

ssh -Y ...
firefox

Si -Y ne fonctionne pas, vérifiez votre configuration sshd sur le PC distant (voir la réponse de Denis Lukinykh). Une autre option similaire est -X . Google pour les différences.

Pour afficher l'application sur une session existante sur le PC distant

Vous devez vous connecter avec l'utilisateur A sur le PC distant et laisser la session ouverte. Ensuite, vous pouvez vous connecter avec le même utilisateur A et lancer l'application (par exemple firefox) comme ceci :

ssh A@...
DISPLAY=:0 nohup firefox

Pour afficher l'application nulle part

Vous devez installer et démarrer xvfb. xvfb créera une session X invisible à l'adresse suivante DISPLAY 10. Ensuite, vous lancez votre application en dirigeant sa sortie vers ce site. DISPLAY :

sudo apt install xvfb
sudo Xvfb :10 -ac -screen 0 1024x768x24 &
DISPLAY=:10 firefox

1voto

Michiel de Mare Points 15888

Une solution moderne qui devrait fonctionner avec les sessions Wayland également, configurer toutes les variables d'environnement utilisées dans les sessions modernes (XDG_RUNTIME_DIR, GTK_MODULES, XDG_DATA_DIRS, XAUTHORITY, SESSION_MANAGER etc.), faire suivre la sortie de la console de l'application vers le journal, et l'exécuter en arrière-plan sans voler votre ssh Shell ou quitter lorsque vous fermez la session ssh :

ssh tim 
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus
systemd-run --user firefox

0voto

Patrick M Points 343

Faites ces réglages sur remotehost :

ssh remotehost 'grep -i x11 /etc/ssh/sshd_config'
   X11Forwarding yes
   X11DisplayOffset 10 

Après cela, vous pouvez exécuter l'application GUI :

ssh -Y -t remotehost 'sudo gparted'

ou

ssh -Y remotehost
sudo gparted

0voto

Behzad Points 331

Disons que vous voulez exécuter gnome-disques .

Vous avez besoin de 2 sessions ssh. L'une est utilisée pour exécuter le logiciel (dans ce cas, gnome-disques). Dans la seconde, vous faites ce que vous voulez faire.

Dans la première session, exécutez ces commandes :

    export DISPLAY=:0
    gnome-disks

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X