Forum Linux.redhat ssh -X => cannot connect to X server

Posté par  .
Étiquettes : aucune
0
4
juil.
2007
Bonjour,

J'essaie de faire un "ssh -X" sur mon serveur Red Hat, sans succès. Apparemment, cette commande n'écrase pas la variable d'environnement DISPLAY et je suis obligé de faire un export DISPLAY=host:4.0. Normalement, l'option X de ssh devrait m'abstenir de faire un export du display après m'être connecté.

Mon fichier sshd_config est d'origine. La mention X11Forwarding n'est pas commentée et elle a le status yes.

Par contre les mentions suivantes sont commentées mais je ne sais pas si elles interfèrent dans le X11Forward :
#X11DisplayOffset 10
#X11UseLocalhost yes


Merci de votre aide
  • # Points à vérifier

    Posté par  . Évalué à 4.

    Salut,

    Les directives commentées (X11DisplayOffset et X11UseLocalhost) ne devraient normalement pas être en cause dans ce problème (leurs valeurs par défaut sont respectivement 10 et yes).
    Il faut également vérifier les points suivants :
    - il y a-t-il une directive "UseLogin yes" dans sshd_confg ? Si c'est le cas, il faut la commenter ou la passer à "no" pour que le forward X11 fonctionne.
    - le fichier /usr/bin/X11/xauth (ou celui indiqué par la directive XAuthLocation) existe-t-il et est-il bien exécutable ?
    - sur la machine cliente, la variable DISPLAY est-elle bien positionnée ?

    Est-il possible que l'un des fichiers exécutés au lancement du shell sur le serveur SSH viennent écraser la valeur de la variable DISPLAY ?
    Que se passe-t-il si tu fixes DISPLAY à la valeur "localhost:10.0" ?
    Sur le serveur, le port 6010 est-il ouvert sur l'interface loopback : il faut essayer un "telnet localhost 6010" et voir ce qu'il se passe.

    Si tout cela échoue, tu peux tenter d'exécuter le client ssh en mode bavard (-v ou -vv ou -vvv) et essayer de comprendre ce qu'il se passe (bon courage...)

    A+
    JJD
    • [^] # Re: Points à vérifier => fait

      Posté par  . Évalué à 2.

      Merci de ta réponse JJD,

      * Dans sshd_confg, j'ai "UseLogin no" qui est commenté. D'après ce qui ce tu mentionné plus haut la mention "UseLogin" est à "no" par défault, il ne faut donc pas y touché.

      * L'utilitaire est bien installé sur la machine. Si j'essaye de faire du ssh -X à partir d'un SUN Ray, je suis obligé de faire sur le serveur Red Hat :
      #xauth add `echo "${DISPLAY}" | sed 's/.*\(:.*\)/\1/'` . `mcookie`
      #export DISPLAY=host_client:4.0

      * La variable DISPLAY apparaît bien avec la commande :
      env | grep DSIPLAY

      Est-il possible que l'un des fichiers exécutés au lancement du shell sur le serveur SSH viennent écraser la valeur de la variable DISPLAY ?
      Que se passe-t-il si tu fixes DISPLAY à la valeur "localhost:10.0" ?

      Je me suis peut être trop avancé sur ce point. J'ai vérifié sur d'autres machine, le ssh -X n'écrase pas la variable DISPLAY et cela fonctionne très bien sur une autre machine. La RED HAT garde donc "localhost:10.0" en variable DISPLAY, quand je me connecte dessus.

      Par contre l'ouverture du port 6010 est bien plus intéressante. En effet il est fermé sur la RED HAT est pas sur les autres systèmes :

      telnet localhost 6010
      Trying 10.0.2.7...
      telnet: connect to address 10.0.2.7: Connection refused
      telnet: Unable to connect to remote host: Connection refused

      Comment fait-on pour ouvrir le port 6010 sur RED HAT ?
      Je suspecte aussi les "Magik Cookies" fais avec xauth, mais je ne maîtrise pas du tout cette techno .....
      Merci de l'aide
      • [^] # Comment ouvrir le port 6010

        Posté par  . Évalué à 1.

        J'ai essayé ceci :


        # iptables -A INPUT -p TCP --dport 6010 -j ACCEPT
        # iptables -A INPUT -p UDP --dport 6010 -j ACCEPT


        Ensuite j'ai teté :

        telnet localhost 6010
        Trying 10.0.2.7...
        telnet: connect to address 10.0.2.7: Connection refused
        telnet: Unable to connect to remote host: Connection refused


        Est ce quelqu'un sait comment ouvre ce port ?
        D'avance merci
    • [^] # Resolu : Points à vérifier

      Posté par  . Évalué à 1.

      Les directives commentées (X11DisplayOffset et X11UseLocalhost) ne devraient normalement pas être en cause dans ce problème (leurs valeurs par défaut sont respectivement 10 et yes).


      JJD,

      Désolé de te contredire, mais la ligne "X11UseLocalhost" a une grande importance. En effet, par défaut elle est à "yes", cela signifie que le X11 ne se transférera pas sur un autre host. Ce qui était mon cas. J'ai donc mis cette ligne à no en la décommentant :

      X11UseLocalhost no

      puis j'ai redémarré le démon sshd avec un:

      service sshd restart

      J'ai fais une nouvelle connexion ssh -X sur ma RHEL4, j'ai pu faire apparaître xcalc et xclock.
  • # C'est quelle version de ssh ?

    Posté par  . Évalué à 3.

    Sur mon portable, j'ai openssh-4.3p2, et lorsque j'utilise ssh -X pour me connecter à une autre machine pour lancer une commande, parfois, ça foire. Par exemple, on utilise fwbuilder. Si je me connecte avec ssh -X et que je lance cette appli, j'ai pleins de messages d'erreur

    X Error: BadWindow (invalid Window parameter) 3
    Major opcode: 38
    Minor opcode: 0
    Resource id: 0x5d

    Mais, si j'incrémente de 1 cette option passée à ssh, et donc que je fais un ssh -Y machine, et que je lance la même commande, aucune erreur.
    Peut-être que ça vaudrait le coup d'essayer....
    • [^] # Re: C'est quelle version de ssh ?

      Posté par  . Évalué à 1.

      Désolé, l'option Y n'est pas supporté par mon ssh client


      ssh -V
      Sun_SSH_1.1, SSH protocols 1.5/2.0, OpenSSL 0x0090700f

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.