J'ai un script, simplement pour exécuter mon application graphique (GUI), comme ci-dessous.
#cat gui.sh
#!/bin/bash
./gui -display 127.0.0.1:0.0
Lorsque je l'exécute à partir d'une machine locale ( ./gui.sh
), cela fonctionne parfaitement bien. Mais lorsque j'essaie de l'exécuter à partir d'une machine distante via ssh, j'ai eu l'erreur suivante.
[root@localhost]# ssh -f 192.168.3.77 "cd /root/Desktop/GUI/ && "./gui.sh""
No protocol specified
gdm: cannot connect to X server 192.168.3.77:0.0
[root@localhost]#
Je ne sais pas, quel protocole il demande ou est-ce que je manque quelque chose? J'ai essayé directement en démarrant l'application, sans script [ ssh -f 192.168.3.77 "cd /root/Desktop/GUI/ && "./gui""
], mais le résultat est le même. J'ai essayé différentes combinaisons comme ssh -Y
, ssh -fY
et plus mais le résultat est le même!
Deuxièmement, pour ma candidature, il y a une condition indispensable que nous devons d'abord aller dans le répertoire où se trouve le programme.
Des solutions?
xhost +
donnera accès à n'importe qui pour se connecter à votre écran. Je recommanderaisxhost +local:[hostname or ip]
Debian Jessie, ajoutez aussi:
la source
xhost +
correction de mon problème (côté client)/tmp/xauth-1000-_0
mais après le démarrage de deux sessions X supplémentaires, ce fichier avait disparu - seule la troisième était restée. Pour résoudre le problème pour toutes les fenêtres, je l'ai restauré avec:ln -s ~/.Xauthority /tmp/xauth-1000-_0
J'ai été touché par le même problème que je l'ai résolu en changeant la variable d'environnement DISPLAY de:
à
la source