SSH : affichage sur 2ème display

Bonjour,

Je suis en train de faire un petit script qui se connecte au serveur, exécute des commandes, affiche le résultat sur le display :1 du client.

Le programme est lancé à partir du dispaly :0 du client.
Voici ce qu’il fait :

#!/bin/sh X :1 ## xhost +<i_serveur> ## ssh -X <username>@<ip_serveur> "script.sh"
Le script.sh contenant par exemple :

export DISPLAY=<ip_client>:1
xclock

Si je fais les lignes marquées par ## à la main, le script fonctionne.
Le seul hic, c’est le “xhost”.
Lorsque je lance un nouveau display, je suis obligé d’ouvrir un terminal sur celui-ci et d’y lancer un "xhost +"
Il faut recommencer cela à chaque nouvelle ouverture du display :1

N’y aurait-il pas un moyen de mettre cette autorisation en dur quelque part ?
Merci pour vos suggestions.

Alfafa

J’ai du mal a saisir ton problème.

  1. Tu lance un script sur une machine cliente
  2. Le script se connecte a un serveur pour lancer un programme graphique
  3. tu veut voir apparaitre sur ton client le programme graphique du serveur

Pour cela tu utilise xhost+<IP_client> …

Alors a quoi te sert ssh -X
Pour ce que je sais juste le “-X” doit suffire a faire apparaitre ton programme graphique sur ton client :108

Tout à fait, cela suffit pour afficher sur le diplay :0
Je veux faire l’affichage sur le display :1 sachant que mon script est lancé à partir du :0
Je viens de trouver des infos sur xauth. Je vais tester ça.

$ xauth list $DISPLAY
toto/unix:0  MIT-MAGIC-COOKIE-1  1f9a10e88f290764fa3d72791fe60643
Puis :
$ xauth add toto/unix:0 MIT-MAGIC-COOKIE-1  1f9a10e88f290764fa3d72791fe60643

#!/bin/sh X :1 ## DISPLAY=:1 ssh -X <username>@<ip_serveur> "script.sh"
Ça marche pas comme ça ?

@MisterFreeze :
Bravo, c’est la solution.

#!/bin/sh X :1 & DISPLAY=:1 sleep 2 ssh -X user@192.168.0.12 "script.sh"
Il fallait en plus un petit sleep pour laisser le temps à X de se lancer.

Merci.
Alfafa