Forum général.général cygwin export display

Posté par  .
Étiquettes :
0
24
sept.
2004
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  . Évalué à 1.

    xhost +

    avant de faire ssh post-maison ...
    • [^] # Re: ben ...

      Posté par  . Évalué à 3.

      A moins que je ne me trompe complètement, il est complètement inutile de faire un "xhost +" : cela permet d'accepter les connexions X11 depuis n'importe quelle machine. Or, dans le cas où le flux X11 est encapsuler dans un tunel SSH, l'accès au serveur X se fait en local.
      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  . Évalué à 1.

    Salut,

    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  (site web personnel) . Évalué à 1.

    Il faut spécifier aux applis quel DISPLAY utiliser :
    $ 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  . Évalué à 2.

    A priori c'est pas vraiment de l'export display que je voudrais mais du forward.
    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  . Évalué à 2.

      En fait, dans le cas du X11 forwarding, SSH agit comme un proxy X11. Dans ta session SSH $DISPLAY devrait être quelque chose du genre ":10.0" ou "localhost:10.0".
      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  . Évalué à 2.

        Encore une dernière précision : du côté de ta session cygwin, il faut bien évidemment que la variable DISPLAY soit correctement positionnée au moment où tu établis ta connexion SSH. Vérifie-le simplement avec un "echo $DISPLAY" et, si besoin est, positionne la avant le ssh (export DISPLAY=:0).

        JJD
        • [^] # Re: petite précision

          Posté par  . Évalué à 1.

          Bon alors effectivement le $DISPLAY local avait besoin d'etre exporté

          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  . Évalué à 3.

            Je te remets en une fois ce que j'ai mis plus haut :
            - 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  . Évalué à 1.

              C'est enorme ca marche !!!

              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  (site web personnel) . Évalué à 2.

    J'ai réalisé précisément ce dont tu parles cet été durant mon ptit boulot d'été, et aucun problème a signaler :
    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  . Évalué à 1.

      Parfait je suis passé par putty pour tester aussi et ca marche aussi tres bien.

      Merci (meme question pour la lenteur plus haut ?)

      Dam
      • [^] # lenteur

        Posté par  . Évalué à 3.

        Je suis content pour toi que ça marche.

        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.