• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] SSH X-Forwarding-Fehler: Error: Can't open Display:

Liebe Leute!

Ich möchte per X-Forwarding über SSH auf meinen Server zugreifen. X-Forwarding in der sshd_config ist an und es wird bei der Verbindung auch ausgegeben, daß es aktiviert wird. Leider kommt aber bei jedem zu startenden Programm die Meldung Can't open Display: und echo $DISPLAY spuckt nur eine leere Zeile aus. Wenn ich testweise xterm starten will, kommt noch die Meldung 'Can't open Display: %s' und 'DISPLAY is not set'. Nach tagelanger Suche habe ich jetzt keine Ideen mehr, zumal 3 andere, auch SuSE 9.3 Systeme, problemlos funktionieren. Hat noch jemand Lösungsvorschläge?
 
Ja, latürnlich mache ich das. Und ich habe es schon als root und als normale Nutzerin versucht.
 
Die sshd_config ist exakt gleich, gleiches gilt für /etc/sysconfig (Das was im YaST zu erreichen ist). Hast Du einen Anhaltspunkt, wo ich unter /etc suchen sollte?
 
Tja, die Einstellungen zur Sicherheit und zu den Usern haben auch keine signifikanten Unterschiede. Ein diff /etc und diff /etc/ssh ergab auch nichts sinniges.
Irgendwie scheint einfach die Variable DISPLAY nicht so gesett zu werden, daß man etwas damit anfangen kann.
 
A

Anonymous

Gast
Verstehe ich das richtig.
du kannst bevor du ssh -X user@server absetzt, auf dem Xserver zugreifen, es ist also vor absetzten des ssh-Befehls die DISPLAY-Variable richtig auf den X-Server gesetzt und auch für den aktuellen User Zugriff erlaubt? und das funktioniert nicht bei allen ssh-Zielrechnern ? Hast du schon mal einen anderen User auf dem ssh-Zeilrechner ausprobiert ?

robi
 
Auf beiden Rechnern können die jeweiligen User X starten. Und ich habe jetzt inklusive root 3 User durch. Ich habe eben mal einen vierten angelegt: selber Fehler.
 
A

Anonymous

Gast
Es gibt meiner Meinung nach folgende Regeleinstellungen. X-Server /etc/ssh/ssh_config
Code:
Host *
#   ForwardAgent no
#   ForwardX11 no
ForwardX11Trusted yes

X-Client /etc/ssh/sshd_config
Code:
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes 
#X11DisplayOffset 10
#X11UseLocalhost yes

es gibt noch userabhängige Einstellung mit der man das X11 forward prinzipiell oder für einzelne Rechner ausschalten kann. schau mal ob du eine Datei ~/.ssh/config auf dem Rechner mit dem X-Server hast.

robi
 
A

Anonymous

Gast
hast du schon mal versucht einfach die DISPLAY-Variable zu setzen.
export DISPLAY=xxx.xxx.xxx.xxx:10 ?

robi
 
In der Richtung habe ich schon viel versucht. Was soll denn da für eine IP eingetragen werden? Die des Servers oder die des Clients?
 
A

Anonymous

Gast
vom Server also die wo der X-Server läuft.

[edit]
das ist genau falsch, die vom Client sonst versucht er über TCP/IP und Post 6000++ selbst an den Server zu kommen.

robi
 
So, jetzt bin ich alle Möglichkeiten durch. Das Setzen der $DISPLAY geht zwar, die Fehlermeldung bleibt aber die selbe. Auch ein xhost + ergibt 'unable to open display ""'. Ich muß mir also irgendwie die richtigen Werte für meine Displays zerhauen haben.
 
So, jetzt noch dazu die Fehlermeldung aus der /var/log/messages:
Code:
Aug 10 11:05:50 sv00 sshd[9772]: error: Failed to allocate internet-domain X11 display socket.
 
Jetzt habe ich mit den neuen Fehlermeldungen mal weiter gesucht und kam dann darauf, daß 'ifup lo' ergibt: 'device "lo" does not exist'. Daran könnte es liegen. Wie stelle ich das wieder her?
 
Hurra! Ich habe die Lösung gefunden. Es ist ein Problem mit IPv6. Der SSHD hat offensichtlich das X-Forwarding an IPv6 gebunden, dort gestartet und damit stand es nicht zu Verfügung, bzw. die Ports waren zu. Eine ausführliche Fehlerbeschreibung bietet http://archive.netbsd.se/?ml=sunmanagers-sunmanagers&a=2005-06&m=1039133.
Gelöst habe ich es dadurch, daß ich die /etc/init.d/sshd leicht abgeändert habe und in den Startbefehl ein '-4' eingefügt habe. Damit lauscht der SSHD nur noch auf IPv4. Die Zeile sieht jetzt so aus:
Code:
startproc -f -p $SSHD_PIDFILE /usr/sbin/sshd -4 $SSHD_OPTS -o "PidFile=$SSHD_PIDFILE"
.
Danke an alle, die mir geholfen haben.
 
Oben