Hello,
Nouveau défit :))
faire de l'export display sur WinXPSP2 avec ssh sur cygwin.
Environnement :
Je suis à mon bureau avec un winXP, j'y ai installé cygwin avec ssh et X.org ... le firewall est tres restrictif ...
A la maison j'ai une debian avec un serveur ssh qui écoute sur le port 21 (pour passer le firewall de la boite) et j'aimerais pouvoir ouvrir des application graphique qui tournerais sur mon poste de la maison via l'option forwardX11 de ssh (-X) mais a priori je m'y prend mal ...
QQ peut me donner la marche a suivre ou me dire ou ca peut bloquer
Dam
jusqu'ici je fais:
~$ X & (lancement d'un server X sur le windows)
~$ Welcome to the XWin X Server
Vendor: The Cygwin/X Project
Release: 6.7.0.0-12
Contact: cygwin-xfree@cygwin.com
winInitializeDefaultScreens - w 1280 h 1024
winInitializeDefaultScreens - Returning
_XSERVTransmkdir: Owner of /tmp/.X11-unix should be set to root
XWin was started with the following command line:
X
winValidateArgs - g_iNumScreens: 1 iMaxConsecutiveScreen: 1
(II) XF86Config is not supported
(II) See http://x.cygwin.com/docs/faq/cygwin-x-faq.html(...) for more information
winDetectSupportedEngines - Windows NT/2000/XP
winDetectSupportedEngines - DirectDraw installed
winDetectSupportedEngines - DirectDraw4 installed
winDetectSupportedEngines - Returning, supported engines 00000007
winSetEngine - Using Shadow DirectDraw NonLocking
winAdjustVideoModeShadowDDNL - Using Windows display depth of 32 bits per pixel
winFinishScreenInitFB - Masks: 00ff0000 0000ff00 000000ff
MIT-SHM extension disabled due to lack of kernel support
XFree86-Bigfont extension local-client optimization disabled due to lack of shared memory support in the kernel
(--) Setting autorepeat to delay=500, rate=31
(--) winConfigKeyboard - Layout: "0000040C" (0000040c)
(--) Using preset keyboard for "French (Standard)" (40c), type "4"
Rules = "xorg" Model = "pc105" Layout = "fr" Variant = "(null)" Options = "(null)"
Could not init font path element /usr/X11R6/lib/X11/fonts/TTF/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/Speedo/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/Type1/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/CID/, removing from list!
Could not init font path element /usr/X11R6/lib/X11/fonts/100dpi/, removing from list!
winPointerWarpCursor - Discarding first warp: 637 484
~$ ssh poste-maison -X -l user -p 21 (connection ssh sur le poste de la maison)
~$ mozilla-thunderbird
(mozilla-thunderbird-bin:5249): Gtk-WARNING **: cannot open display:
~$
# ben ...
Posté par kesako . Évalué à 1.
avant de faire ssh post-maison ...
[^] # Re: ben ...
Posté par JJD . Évalué à 3.
De plus, la sécurité du serveur X est plutôt basée sur le mécanisme xauth (avec des cookies conservée dans le fichier ~/.Xauthority) : cela evite de faire confiance à tous les utilisateurs d'une machine donnée, et permet d'éviter que des personnes connectées sur un mêmes serveur puissent utiliser les displays des autres.
JJD
# Pb export du display
Posté par JJD . Évalué à 1.
Apparemment ton DISPLAY (sur la machine XP) n'est pas exporté. Tu pourrais avoir plus d'infos en lançant ssh avec l'option -v (informations de déboggage).
Quoi qu'il en soit, il faut au moins que tu vérifies que ton serveur SSH accepte le X11 forwarding (option "X11Forwarding yes" dans /etc/ssh/sshd_config).
JJD
# Spécifier le DISPLAY
Posté par jerome (site web personnel) . Évalué à 1.
$ export DISPLAY=hote:0.0
$ application
ou
$ DISPLAY=hote:0.0 application
Sur l'hôte (la machine avec cygwin), il faut que les connections soient autorisés :
. une histoire de tcp nolisten pour la commande startx ;
. autoriser les connections en provenance d'un hôte donné, un utilisateur, avec xhost +hote_distant ou +utilisateur (man xhost).
# petite précision
Posté par Hardy Damien . Évalué à 2.
En fait ssh devrais renvoyer le display sur le serveur X local du winXP (si je comprend bien) et non pas l'appli qui envois directement depuis ma maison sur le serveur X du XP ... ya une petite nuance non ? et c'est ce forward que jene maitrise pas ...
Dam
[^] # Re: petite précision
Posté par JJD . Évalué à 2.
C'est bien ssh qui doit se charger de positionner la variable DISPLAY à la bonne valeur et de gérer l'authentification xauth.
JJD
[^] # Re: petite précision
Posté par JJD . Évalué à 2.
JJD
[^] # Re: petite précision
Posté par Hardy Damien . Évalué à 1.
j'ai testé avec un xeyes et ca passe en local ...
ensuite je fait mon ssh (le serveur X redemarre contrairement à avant), par contre le $DISPLAY distant est vide :/
j'essaye plusieur export DISPLAY=:10.0 , :1.0, :2.0 avec xeyes et tous me réponde Error: Can't open display: :10.0
( :0.0 me jette violament normal je suis pas devant le pc )
Y a t'il un moyen de connaitre le nom du X ouvert par ssh ?
Dam
[^] # Re: petite précision
Posté par JJD . Évalué à 3.
- sur ta machine perso, il faut que tu vérifies la config du serveur SSH. Dans /etc/ssh/sshd_config, il doit il y avoir la directive "X11Forwarding yes", normalement suivi de quelque chose du genre "X11DisplayOffset 10". So c'est le cas, et à supposer que ton DISPLAY cygwin est :0, tu devais avoir, dans ta session SSH, ton DISPLAY positionné à "localhost:10"
- essaie de lancer le client ssh avec l'option -v (ssh -v -X -l user machine.perso). Juste après la phase d'authentification et avant le prompt de ton shell, tu devrais avoir des informations intéressantes sur ce qui se passe concernant le forward X11.
JJD
[^] # Re: petite précision
Posté par Hardy Damien . Évalué à 1.
merci bien
Par contre c'est tres lent ... pourtant j'ai du xdsl au bureau et de ADSL free dégroupé à la maison est ce à cause du chiffrement. peut-on optimiser tout ca ?
Dam
# Pour ma part
Posté par cho7 (site web personnel) . Évalué à 2.
j'ai "installé" cygwin (en fait je l'ai copié collé, car pas j'avais pas de droits pour l'install, j'ai ensuite updaté le registre avec un fichier .reg qui va bien)
2eme etape : on ouvre cygwin.
3eme etape : on tappe startxwindow.sh et on valide
4eme etape : dans le nouveau shell qui a du s'ouvrir on tappe ssh -Y blabla@mon_ip -p mon_port
puis là ca roule normalement, sans toucher a la variable DISPLAY
J'ai aussi réussi a faire tourner le bouzin avec Putty, dans les parametres il faut cocher 'activer le X forwarding", meme pas besoin de spécifier le port du DISPLAY, il le detecte tout seul.
Chez moi, j'ai juste sshd qui tourne, avec l'option X11Forwarding yes dans mon /etc/ssh/sshd_config
Voilou
[^] # Re: Pour ma part
Posté par Hardy Damien . Évalué à 1.
Merci (meme question pour la lenteur plus haut ?)
Dam
[^] # lenteur
Posté par JJD . Évalué à 3.
Tu as beau avoir de l'ADSL chez toi, il ne faut pas oublier que c'est le débit en UPLOAD de ton abonnement qui entre en jeu.
Tu peux essayer d'amméliorer un peu les choses en mettant l'option -C lors de la connexion SSH (compression des données). Attention tout de même : le temps nécessaire à la compression/décompression dépend fortement de la puissance des machines aux deux bouts de la liaison SSH et dans certains cas on peut avoir des performances pires avec l'option -C que sans.
JJD
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.