# export DISPLAY=....

## larrie

Hallo,

ich würde gerne die X-Windows von Rechner A auf Rechner B anzeigen lassen.

Rechner A: Mandrake

Rechner B: Gentoo

Ich führe auf Rechner B "xhost +" aus. Dann auf Rechner A  "export DISPLAY=dieIpAdresse:0.0

Wenn ich danach auf Rechner A z.B. einen Editor starte sollte ich ja das Fenster auf B bekommen. Es funktioniert so auch wenn bei Rechner B (Gentoo) xdm läuft. Unter kdm und gdm erhalte ich bei A:  cannot connect to X server dieIpAdresse:0.0

Gibts hier irgendwas zu beachten bei irgendwelchen Konfiguationsdateien von gdm oder kdm?

Danke,

André

----------

## sirro

Nutzt du SSH?

```
ssh -X rechnername
```

Wenn der sshd auch noch mit X11-Forwarding konfiguriert ist funktioniert das einwandfrei bei mir.

----------

## larrie

danke für den tipp...kannte ich so nicht...aber leider ist das problem genau das gleiche.

 *Quote:*   

> Wenn der sshd auch noch mit X11-Forwarding konfiguriert ist funktioniert das einwandfrei bei mir.

 

wie und wo konfigurier ich das? vielleicht liegts ja daran....allerdings schon komisch, dass es unter xdm geht und sonst net.....

----------

## Irom

Jeder Displaymanager startet den X-server anders. Bei gdm legt das die "command="-zeile in /etc/X11/gdm/gdm.conf fest.

Steht da z.B. "-nolisten tcp", nimmt der X-server gar keine anfragen entgegen (siehe X -help).

Wahrscheinlich liegt es aber eher daran, daß du das veraltete verfahren mit xhost benutzt. Du musst mit xauth auf dem client-rechner das richtige X-cookie einrichten. Am einfachsten ist aber wirklich ssh. Das richtet den ganzen kram automatisch ein und du  kannst du sogar noch komprimierung einschalten.

Edit: Hm, wenn ich so drüber nachdenke müsste eigentlich xhost trotzdem funktionieren.

Hier ist jedenfalls erstmal eine Anleitung für xauth.

Die config für ssh ist /etc/ssh/ssh_config.

----------

## SinoTech

Jo, also für shh:

1. Bei deinem server musst in der file "/etc/ssh/ssh_config" folgende Zeile aktivieren (ist normal auskommentiert)

ForwardX11  yes

2. SSH session startest dann mitder Option "-X". Also :

ssh -X Username@IPAdresse

Wenn dann über diese session ein Programm startest, erscheint es beim Client auf dem Bildschirm.

----------

## Pegasus87

Hallo,

bin auch gerade das erste mal dabei eine SSH Verbindung inlusive X auszubauen.

Bei mir siehts folgendermaßen aus:

SuSE PC als SSH-Server

Gentoo Laptop mit SSH_Client

Ich will auch Programme auf meinem Laptop sehen, die aber auf dem SuSE laufen.

Wenn ich eine Verbindung, wie oben beschrieben herstelle, steht da folgendes:

```
Warning: No xauth data; using fake authentication data for X11 forwarding.

Last login: Wed Sep 22 22:05:11 2004 from 192.168.2.29

Have a lot of fun...
```

Wenn ich dann ein Programm starten will, funktioniert das natürlich auch nich.

Ich verstehe nur leider diese xauth Technik nicht so richtig, was muss ich jetzt auf welchem Rechner genau machen?

mfg

----------

## SinoTech

Also die Meldung

Warning: No xauth data; using fake authentication data for X11 forwarding. 

kommt bei mir auch immer (Habe da auch noch nicht so den totalen Durchblick). Aber funktionieren sollte es trotzdem.

Wichtig ist nur das du dich per SSH mit dem selben Benutzername einloggst mit dem du dich bei deinem Laptop eingeloggt hast.

Heißt wenn du am Laptop als "Pegasus87" eingeloggt bist, musst du dich auch beim server als "Pegasus87" einloggen ("ssh -X Pegasus@Server" ). Es funktioniert also nicht falls du dich als root am server einloggst und dann per su zu deinem deinem normalen Benutzer wechselst.

Also einfach am Laptop anmelden, dann über SSH mit dem selben Benutzernamen am Server anmelden (Mit dem Flag "-X") und dann dort einfach das gewünschte Programm starten.

Mit "xauth" kannst wahrscheinlich festlegen welcher Rechner Grafische Programme am Server starten darf. Aber wie gesagt, da habe ich selbst noch nicht so ganz den Durchblick. Aber kommt evtl. ja noch  :Wink: 

----------

## Neo_0815

Also xhosts ist die alte unsicherere Methode, nutz besser xauth mit MIT-MAGIC-COOKIE-1 Methode und das sollte alles funzen - hier en Link zum Thema:

http://www.theparallax.org/dcoul/user2root/xhost.shtml

MfG

----------

## psyqil

 *Irom wrote:*   

> Anleitung für xauth.

 

 *Neo_0815 wrote:*   

> http://www.theparallax.org/dcoul/user2root/xhost.shtml 

  :Very Happy: 

----------

## Neo_0815

Öhm ^^ ... ich mag diese Linkverstecker nicht  :Wink:  - sowas peinliches.

MfG

----------

## SinoTech

Ahh ... thx  :Smile: 

Mfg

Sino

----------

## platinumviper

zu ssh:

Bei langsamen Verbindungen (z.B. DSL) kann man mit dem Parameter C die Daten komprimieren. Es gibt mehrere SSH-Daemons, mindestens einer lässt X-Forwarding nur kurzzeitig zu, hier hilft der Parameter Y. Wenn nur ein Programm gestartet werden soll, kann es direkt angegeben mit werden, z.B.: 

```
ssh -X root@localhost xnmap&
```

Wer viel auf der Console macht (z.B. das tägliche emerge sync||emerge -pvu world oder glsa-check -f all auf den Servern) sollte ein farblich kodiertes *term benutzen, das schützt vor reboot des falschen Rechners. 

```
xterm -bg lightyellow -fg blue -e ssh -XC root@dns&
```

zu xhost:

mit xhost + wird allen Rechnern erlaubt Fenster zu öffnen, ein Account ist nicht erforderlich. Besser ist es, nur wenigen Rechner dieses Recht zu geben: 

```
xhost rechnera rechnerb
```

oder ssh zu benutzen.

Das folgende Beispiel zeigt wie ein Benutzer an RechnerB einen Benutzer an RechnerA an der Arbeit hindert ohne einen Account auf RechnerA zu haben:

Benutzer an RechnerA gibt ein: 

```
xterm +
```

Benutzer an RechnerB gibt ein: 

```
export DISPLAY=RechnerA:0.0

for a in 0 1 2 3 4 5 6 7 8 9; do for b in 0 1 2 3 4 5 6 7 8 9; do (xterm -e "echo Lass Dich nicht stören;sleep 15"&); done; done
```

In diesem Fall passiert nichts schlimmes, auf dem Monitor von RechnerA öffnen sich 100 Fenster und verschwinden nach 15 Sekunden wieder, aber es hätte ja auch ein Programm sein können, das den RechnerA mehr belastet als ein schlafendes xterm  :Wink: 

platinumviper

----------

## Pegasus87

Also ich hab das jetzt so gemacht:

Auf dem SSH Server als User, mit dem ich mich später auf dem SSH einlogen will, 

```
xauth export /irgend/eine/datei $DISPLAY
```

ausführen.

Dann hab ich diese Datei auf den Laptop kopiert und da als User

```
xauth merge /die/kopierte/datei
```

ausgeführt.

Und danach konnte ich mich als User auf dem SSH einloggen und beliebig Programme starten.

Nur die komplette KDE Freigabe funktioniert noch nichtdas mit diesen Einladungen funktioniert irgendwie nich richtig; kennt jemand ein HowTo dazu?

----------

## larrie

ui, ist ja richtig was los hier   :Wink: 

Also bei mir klappt mal alles wieder nicht....grrrrr

1. Ich habe in ssh_config das X11-Forwarding auf yes gesetzt.

2. Ich logge mich via ssh beim remote Rechner ein. Mit der -X Option und führe folgende Befehle aus

```
export DISPLAY=meineLokaleIP]:0.0

xauth extract authFile $DISPLAY
```

und erhalte dann

```
No matches found, authority file "authFile" not written
```

Hab ich irgendwas übersehen?   :Question: 

----------

## platinumviper

 *larrie wrote:*   

> 1. Ich habe in ssh_config das X11-Forwarding auf yes gesetzt.
> 
> 2. Ich logge mich via ssh beim remote Rechner ein. Mit der -X Option und führe folgende Befehle aus
> 
> ```
> ...

 

Wenn X11-Forwarding in ssh_config gesetzt ist, brauchst Du die Option -X nicht mehr. Die Variable DISPLAY ist bereits korrekt gesetzt, Du brauchst sie nicht zu verändern. Starte einfach mal ein grafisches Programm, es sollte gehen.

platinumviper

----------

## larrie

 *platinumviper wrote:*   

> Die Variable DISPLAY ist bereits korrekt gesetzt, Du brauchst sie nicht zu verändern. Starte einfach mal ein grafisches Programm, es sollte gehen.platinumviper

 

Also wenn ich mich via ssh einlogge, dann ist die DISPLAY Variable leer. Direkt ein Programm starten fällt so aus:

```
[bom@remote bom]$ kwrite

Xlib:  extension "GLX" missing on display "localhost:10.0".

Xlib:  extension "GLX" missing on display "localhost:10.0".

Xlib:  extension "GLX" missing on display "localhost:10.0".

Xlib:  extension "GLX" missing on display "localhost:10.0".

Xlib:  extension "GLX" missing on display "localhost:10.0".

Xlib:  extension "GLX" missing on display "localhost:10.0".

Xlib:  extension "GLX" missing on display "localhost:10.0".

Xlib:  extension "GLX" missing on display "localhost:10.0".

Xlib:  extension "GLX" missing on display "localhost:10.0".

Xlib:  extension "GLX" missing on display "localhost:10.0".

Xlib:  extension "GLX" missing on display "localhost:10.0".

Xlib:  extension "GLX" missing on display "localhost:10.0".

Xlib:  extension "GLX" missing on display "localhost:10.0".

X Error: BadAtom (invalid Atom parameter) 5

  Major opcode:  20

  Minor opcode:  0

  Resource id:  0x125

Segmentation fault

```

Wenn ich die Display-Variable auf die IP hier setze gibts : 

```
[bom@remote bom]$ kwrite

kwrite: cannot connect to X server meineIPHier:0.0
```

----------

## platinumviper

 *larrie wrote:*   

>  *platinumviper wrote:*   Die Variable DISPLAY ist bereits korrekt gesetzt, Du brauchst sie nicht zu verändern. Starte einfach mal ein grafisches Programm, es sollte gehen.platinumviper 
> 
> Also wenn ich mich via ssh einlogge, dann ist die DISPLAY Variable leer. Direkt ein Programm starten fällt so aus:
> 
> ```
> ...

 

Hast Du vergessen auf dem anderen Rechner (remote) in /etc/ssh/sshd_config die Zeile X11Forwarding yes einzutragen bzw. zu entkommentieren und sshd neu zu starten?

Aus den kwrite Meldungen geht hervor, dass DISPLAY korrekt auf localhost:10.0 gesetzt ist. Wenn Du DISPLAY auf meineIPHier:0.0 setzt werden die Programme versuchen eine unverschlüsselte Verbindung zu meineIPHier herzustellen, das sollte natürlich nicht sein und ist auch nur möglich, wenn Du vorher mit 

```
xhost + remote
```

 solche Verbindungen erlaubt hast.

Der Segmentation fault hätte nicht auftreten dürfen, ist bei KDE/QT Programmen aber nicht ungewöhnlich.

platinumviper

----------

## larrie

Also auf dem remote Rechner ist X11Forwarding gesetzt.

Habe sshd neu gestartet und es nochmal versucht. Ergebnis: 

```
[bom@remote bom]$ kwrite

Xlib:  extension "GLX" missing on display "localhost:11.0".

Xlib:  extension "GLX" missing on display "localhost:11.0".

Xlib:  extension "GLX" missing on display "localhost:11.0".

Xlib:  extension "GLX" missing on display "localhost:11.0".

Xlib:  extension "GLX" missing on display "localhost:11.0".

Xlib:  extension "GLX" missing on display "localhost:11.0".

Xlib:  extension "GLX" missing on display "localhost:11.0".

Xlib:  extension "GLX" missing on display "localhost:11.0".

Xlib:  extension "GLX" missing on display "localhost:11.0".

Xlib:  extension "GLX" missing on display "localhost:11.0".

Xlib:  extension "GLX" missing on display "localhost:11.0".

Xlib:  extension "GLX" missing on display "localhost:11.0".

Xlib:  extension "GLX" missing on display "localhost:11.0".

X Error: BadAtom (invalid Atom parameter) 5

  Major opcode:  20

  Minor opcode:  0

  Resource id:  0x125

Segmentation fault

```

Aber ich denke nicht, dass das Problem an ssh liegt. Ich kann ja auch keine X-Windows per export DISPLAY=... und xhost remote exportieren. Wie bereits zu Anfang gesagt, es geht mit xdm aber nicht mit gdm oder kdm.

----------

