GästebuchIhr Eintrag in unser Gästebuch KontaktNehmen Sie Kontakt mit den Autoren auf ArchivAlle Unixwerk- Artikel seit 2003
19. Dezember 2009

MiniTipp: Probleme mit X11 Forwarding und openssh

Inhalt

  • Das Problem
  • Die Untersuchung
  • Die Lösung

     

    1. Das Problem

    Wir müssen ein X11-Programm auf einer LPAR starten, z.B. zur Installation von Oracle oder Websphere. In der Konfigurationsdatei /etc/ssh/sshd_config wurde X11-Forwarding selbstverständlich eingeschaltet:

    X11Forwarding yes
    

    Dennoch stellen wir nach einer Anmeldung fest, dass sich keine X-Programme starten lassen:

    aix# xclock
    Error: Can't open display:
    

    Wo liegt das Problem?

     

    2. Die Untersuchung

    Um das Problem einzukreisen, melden wir uns mit ssh im Debug-Mode an unserer LPAR an:

    client# ssh -v aix
       :
       :
    debug1: No xauth program.
    Warning: No xauth data; using fake authentication data for X11 forwarding.
    debug1: Requesting X11 forwarding with authentication spoofing.
    debug1: Remote: No xauth program; cannot forward with spoofing.
       :
       :
    

    Es sieht so aus, dass es auf unserer LPAR das Programm xauth nicht gibt. Doch ist das wirklich so? Sehen wir einmal nach:

    aix# lslpp -L openssh.base\*
      Fileset                      Level  State  Type  Description (Uninstaller)
      ----------------------------------------------------------------------------
      openssh.base.client     4.3.0.5300    C     F    Open Secure Shell Commands
      openssh.base.server     4.3.0.5300    C     F    Open Secure Shell Server
    
    aix# lslpp -w \*xauth            
      File                                        Fileset               Type
      ----------------------------------------------------------------------------
      /usr/lpp/X11/bin/xauth                      X11.apps.config       File
    

    In der Paketdatenbank ist das Programm aber gelistet, auch Openssh ist installiert. Wieso wird also bei der Anmeldung xauth nicht gefunden?

     

    3. Die Lösung

    Das Problem ist nur der Pfad zum Program xauth. Dieses liegt auf dem Server unter /usr/bin/X11/xauth

    aix# which xauth
    /usr/bin/X11/xauth
    

    Der abweichende Pfad zu xauth gegenüber den Informationen aus der Paketdatenbank sollte uns nicht irritieren, dies hat das Post-Installscript zu verantworten. Allerdings liegt /usr/bin/X11 möglicherweise nicht im Standardpfad und das sshd-Binary sucht xauth ohnehin ganz woanders:

    aix# strings /usr/sbin/sshd|grep xauth
    No xauth program; cannot forward with spoofing.
    maxauthtries
    xauthlocation
    /usr/contrib/bin/xauth
    

    Wir brauchen also lediglich in der Datei /etc/ssh/sshd_config einen Eintrag

    XAuthLocation /usr/bin/X11/xauth
    

    hinzuzufügen. Der sshd muss aber noch durchgestartet werden:

    aix# stopsrc -s sshd
    0513-044 The sshd Subsystem was requested to stop.
    aix# startsrc -s sshd
    0513-059 The sshd Subsystem has been started. Subsystem PID is 28476.
    

    Bestehende Verbindungen werden durch den Neustart nicht beendet.