export display

michaelkael

Membre confirmé
17 Février 2006
15
0
bijour
j'ai un petit problème pour récupérer l'affichage d'une station de travail unix sur mon mac.
je prends soin de faire un xhost + sur mon x11, je me connecte par telnet sur la station, ensuite je lui demande de modifier l'affichage par un set DISPLAY=IP:0, et j'obtiens toujours en réponse si je fais un nedit un "can't open display"...
 
michaelkael a dit:
bijour
j'ai un petit problème pour récupérer l'affichage d'une station de travail unix sur mon mac.
je prends soin de faire un xhost + sur mon x11, je me connecte par telnet sur la station, ensuite je lui demande de modifier l'affichage par un set DISPLAY=IP:0, et j'obtiens toujours en réponse si je fais un nedit un "can't open display"...

Salut.

Si tu est connecté en ssh a ta postation unix in ne faut pas que tu oublie de mettre l'option -X dans ton ssh autrement ca marche pas.
En gros la ligne de command dans le terminal doit etre:

ssh -X [toi]@[ton server unix]

NB: le "X" doit etr majuscule

Voila. J'espere que ca va resoudre ton probleme. Le logiciels devrai maintenant s'afficher dans un fenetre X11 de ton mac. Tu ne peux pas "exporter" tout le desktop de cette facon mais seulement les fenetres de logiciel. Pour avoir un apercu sur tout ton desktop tu peux essayer VNC mais il faut que t'aii installé VNC-server sur ta machine unix et VNC-client sur ton mac. Comme ca ca devrait marcher (j'ai jamais essayé un connection de c type entre mac et unix) mais je pense que le ssh -X soit la solution plus simple.

Plus;)
 
le problème c'est la station unix n'a pas de serveur ssh. Donc je suis obligé de faire un telnet pour me loguer dessus, mais peut être que telnet a le même genre d'option,non?
 
Une station Unix sans ssh? Ca existe ca?
elle doit avoir une ip au moins au quel tu peux te connecter. Je m'explique si elle est connecté au un reseau elle doir avoir un ip fixe. Je crois (mais la tu me fais venir des doutes) que toute le machine unix ont par default le protocol ssh d'installé. Peut etre le serveur n'est pas defini mais je pense que si tu connais l'ip de la machine tu peus faire par example pour un ssh simple

ssh [ton login]@[ip de la machine]

ca devrait marcher comme ca aussi mais je repete j'ai jamais vu une machine unix sans ssh.
 
Ca c peut etre du a un parefeu su la machine UNIX. Autrement il t'aurait dit que le server n'exite pas. Le parefeu n'est peut etre pas configuré pour te laisser te loger. Verifie avec le responsable du reseau au quel la machine est reliée.
 
@Intra :
Des systèmes Unix sans SSH, ça existe et ce n'est pas son problème ... :siffle:
Il est évident qu'il vaut mieux avoir un sshd qu'un telnetd mais bon ... certains archaïsmes ont du mal à disparaître.

@Michaelkael :
Quel est le shell de ta connexion distante : sh (ou bash) ou csh (ou tcsh) ou ksh (ou zsh) ? Si c'est bash, il te faut faire :
Bloc de code:
export DISPLAY=aaa.bbb.ccc.ddd:0.0
sans cela la variable n'est pas forcément connue (avec aaa.bbb.ccc.ddd valant l'adresse IP de ton poste tel qu'il est vu de la station Unix : ce n'est pas forcément l'adresse IP de ta machine telle que tu peux la voir).

Maintenant, il est aussi possible que tu passes par suffisamment de routeurs et FWs avec NAT et tout le toutim et que donc il n'y ait aucune chance de pouvoir connecter les ports idoines. Où l'on revient au fait que, dans ce cas, seul SSH pourrait te simplifier la vie ... :D
 
Pour connaître ton adresse IP telle que vue par la station distante, la commande 'who' devrait t'aider.
Par exemple, sur un Mac,
Bloc de code:
who -m
donne l'information pour le shell où elle est entrée. Si c'est dans un Terminal, il n'y aura rien de special mais si c'est une connexion distante, le nom (ou l'IP) de la machine apparaîtra. Par exemple :
Bloc de code:
toto@Iquique:toto [509]$ who -m
toto    ttyp3    Feb 18 01:04 ([b]bogota.local[/b])
Là c'est le user toto qui vient de la machine 'bogota.local' (j'ai mis en gras).
 
Il faut aussi vérifier que le serveur X sur le Mac accepte les connexions X11. Il faut à la fois l'activer dans sa config (vérifier que le serveur n'est pas lancé avec l'option "-nolisten tcp"), et s'assurer que le port correspondant est ouvert (à priori le 6000).

Ceci dit je suis aussi d'avis qu'avec ssh c'est beaucoup plus simple (pas besoin de "xhosts", de "set DISPLAY", de parametrage de X...). C'est juste un argument en plus au moment de la connexion ssh.
 
le shell est bien tcsh. Et je suis bien d'accord pour les connections avec ssh, c'est beaucoup plus simple...
par contre comment vérifie-t-on que le serveur X sur le mac accepte les connections X11?
 
Tu peux déjà vérifier que les tuyaux sont ouverts en tapant, dans la connexion distante :
Bloc de code:
telnet aaa.bbb.ccc.ddd 6000
Où aaa.bbb.ccc.ddd est l'adresse IP de ta machine telle que vue par la machine distante.
Cela te dira déjà si le port 6000 de ta machine est accessible.
Par ailleurs, comme tu as déjà fait "xhost +" après avoir lancé ton serveur X11, cela devrait être bon.
 
- Méthode rapide : voir si "telnet localhost 6000" arrive à établir une connexion.
- Methode propre : utiliser "netstat" pour vérifier les ports ouverts avec "netstat|grep LISTEN" (ou peut être "netstat -l" si c'est comme sous linux).
 
Un telnet sur le localhost ne vérifie que X11 en local.
Dans son cas, il s'agit d'une connexion distante et il faut donc bien vérifier qu'en partant de la machine distante on parvient à se connecter. C'est pour cela que je précise bien 'adresse IP telle que vue par la machine distante'. S'il y a des pare-feu ou de la translation d'adresse au milieu, il n'arrivera peut-être pas à atteindre son poste en retour. Et c'est bien là l'avantage de SSH qui te garantit une possibilité de connexion en retour.
 
En effet, je me contentais de répondre à sa question, à savoir vérifier si X11 ouvre bien le port TCP permettant le forwarding. Après, il faut en effet vérifier ensuite qu'il n'y ait pas d'autre obstacles.
 
non effectivement je n'arrive pas à me connecter de la machine distante vers ma machine. Mais question bête, ne faut-il pas que ma machine soit considérée comme un serveur telnet pour que je puisse me connecter de la machine distante? bref je patauge...
 
Et ça marche en local sur ta machine (telnet localhost 6000) ?
Sinon pour répondre à ta question, inutile d'installer un serveur telnet sur ta machine (on propose juste des tests avec telnet pour vérifier si le port 6000 est ouvert/accessible).
 
a priori, pas de trace d'un xserverrc. Par contre, dans un fichier etc/X11/xdmXaccess
# To control which addresses xdm listens for requests on:
#
# LISTEN address [list of multicast groups ... ]
#
# The fifth form tells xdm which addresses to listen for incoming connections
# on. If present, xdm will only listen for connections on the specified
# interfaces and/or multicast groups.

Il y a pas mal de choses dans ce fichier, et j'avoue que je ne sais pas trop quoi faire...