Wie setzt man $DISPLAY richtig? [gelöst]

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Wie setzt man $DISPLAY richtig? [gelöst]

Beitrag von Duff » 04.10.2007 14:25:42

Hallo,

ich habe mal eine Frage zum richtigen setzen des DISPLAYs.

Ich habe mich daniel@laptop per vpn zu einem entfernten Rechner rechnerA verunden.

Code: Alles auswählen

ssh -X rechnerA
Wenn ich doch ein xclock aufrufe, bekomme ich die Uhr angezeigt.
Das Display auf rechnerA steht auf

Code: Alles auswählen

localhost:69.0
Verbinde ich mich nun von rechnerA zu rechnerB

Code: Alles auswählen

ssh -X rechnerB
und rufe dann dort ein xclock auf, funktioniert dies auch.
Ein echo $DISPLAY liefert folgendes zurück:

Code: Alles auswählen

<IP-Adresse von rechnerB>:20.0
Da ich mich aber dort als ein anderer user anmelden muss und somit ein

Code: Alles auswählen

su - user
ausführe, kann ich danach kein xclock mehr starten.

Auf was muss ich dann dort die IP-Adresse setzen?
Zuletzt geändert von Duff am 10.10.2007 09:09:38, insgesamt 1-mal geändert.
Oh, yeah!

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Re: Wie setzt man $DISPLAY richtig?

Beitrag von gms » 04.10.2007 14:28:41

Duff hat geschrieben:Ein echo $DISPLAY liefert folgendes zurück:

Code: Alles auswählen

<IP-Adresse von rechnerB>:20.0
Da ich mich aber dort als ein anderer user anmelden muss und somit ein

Code: Alles auswählen

su - user
ausführe, kann ich danach kein xclock mehr starten.

Auf was muss ich dann dort die IP-Adresse setzen?
auf "<IP-Adresse von rechnerB>:20.0", noch einfacher geht es aber mit "ssh -X user@rechnerB"

Gruß
gms

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 04.10.2007 14:34:17

Danke, aber funktioniert leider nicht.

Wenn ich die IP-Adresse so nehme, wie es vor einem su - user funktioniert, kommt folgende Fehlermeldung:

Code: Alles auswählen

X11 connection rejected because of wrong authentication.
X connection to <IP-Adresse von rechnerB>:20.0 broken (explicit kill or server shutdown).
Mache ich ein "ssh -X user@rechnerB" bekomme ich die Fehlermeldung, dass weiter Logins nur von gleicher Datenstation aus möglich sind.
Oh, yeah!

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 04.10.2007 15:09:33

Duff hat geschrieben: Wenn ich die IP-Adresse so nehme, wie es vor einem su - user funktioniert, kommt folgende Fehlermeldung:

Code: Alles auswählen

X11 connection rejected because of wrong authentication.
X connection to <IP-Adresse von rechnerB>:20.0 broken (explicit kill or server shutdown).
die Fehlermeldung zeigt:
a) daß die DISPLAY Variable einen gültigen Wert hat
b) die Authentifizierung fehlschlägt

die Authentifizierung kannst du mit "xhost" bearbeiten
Duff hat geschrieben: Mache ich ein "ssh -X user@rechnerB" bekomme ich die Fehlermeldung, dass weiter Logins nur von gleicher Datenstation aus möglich sind.
hast du dieses Kommando vom "rechnerA" abgesetzt ?

Gruß
gms

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 04.10.2007 15:21:53

gms hat geschrieben: die Fehlermeldung zeigt:
a) daß die DISPLAY Variable einen gültigen Wert hat
b) die Authentifizierung fehlschlägt

die Authentifizierung kannst du mit "xhost" bearbeiten
Wo muss ich genau die Authentifizierung mit xhost bearbeiten?
Hatte schon vorher auf meinem "Start-"Rechner ein xhost + gemacht.
gms hat geschrieben: hast du dieses Kommando vom "rechnerA" abgesetzt ?
Habe von rechnerB als "normaler" Benutzer daniel ein

Code: Alles auswählen

ssh -X rechnerB -l user
gemacht.
Oh, yeah!

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 04.10.2007 15:25:55

Duff hat geschrieben: Wo muss ich genau die Authentifizierung mit xhost bearbeiten?
auf Rechner B ( z.B. vor dem su )
Duff hat geschrieben: Habe von rechnerB als "normaler" Benutzer daniel ein
ssh -X rechnerB -l user
spricht etwas dagegen, dieses Kommando auf dem RechnerA abzusetzen ?

noch ein weiterer Lösungsvorschlag:
eventuell kannst du auch statt dem "su - user" ein "gksu user" oder "kdesu user" absetzen, damit werden dir auch die DISPLAY und die XAUTHORITY Variablen korrekt gesetzt

Gruß
gms

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 04.10.2007 15:54:34

Ein xhost auf rechnerB als user daniel funktioniert:

Code: Alles auswählen

daniel@rechnerB:/home/daniel> xhost
access control disabled, clients can connect from any host
Ein anschließendes su - user und starten von xclock bringt jedoch wieder folgende Fehlermeldung:

Code: Alles auswählen

Error: Can't open display: rechnerA:0.0
Ein direkter login von rechnerA aus mit

Code: Alles auswählen

ssh -X rechnerB -l user
scheitert auch wieder mit der Fehlermeldung, dass weitere logins nur von gleicher Datenstation aus möglich sind.

Noch eine Idee?
Oh, yeah!

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 04.10.2007 16:27:03

Duff hat geschrieben: Ein anschließendes su - user und starten von xclock bringt jedoch wieder folgende Fehlermeldung:

Code: Alles auswählen

Error: Can't open display: rechnerA:0.0
"0.0" ist auch sicherlich falsch
Duff hat geschrieben: Ein direkter login von rechnerA aus mit

Code: Alles auswählen

ssh -X rechnerB -l user
scheitert auch wieder mit der Fehlermeldung, dass weitere logins nur von gleicher Datenstation aus möglich sind.
diese doofe Fehlermeldung habe ich überhaupt noch nie gesehen, was ist das für ein SSH Server ?
habe bei mir einmal spaßeshalber folgende Sequenz durchgespielt:
ssh -X user1@rechnerA -> ssh -X user2@rechner B -> ssh user3@rechnerC -> ssh user4@rechnerA -> xclock

Daran beteiligt sind: Linux/intel, AIX/powerpc und Sun/sparc Rechner, selbstverständlich hat das funktioniert

Gruß
gms

Benutzeravatar
MSfree
Beiträge: 11721
Registriert: 25.09.2007 19:59:30

Beitrag von MSfree » 04.10.2007 16:33:10

gms hat geschrieben:diese doofe Fehlermeldung habe ich überhaupt noch nie gesehen, was ist das für ein SSH Server ?
Wahrscheinlich einer, bei dem ein Remote-Login nur mit Keyfiles möglich ist. Wenn man kein Keyfile für UserB@RechnerB hat bzw. das Keyfile nicht unter ~/.ssh/config referenziert hat, kann so eine Meldung schonmal vorkommen.

Weitere Details findet man mit man ssh-keygen.

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 04.10.2007 16:57:48

MSfree hat geschrieben:
gms hat geschrieben:diese doofe Fehlermeldung habe ich überhaupt noch nie gesehen, was ist das für ein SSH Server ?
Wahrscheinlich einer, bei dem ein Remote-Login nur mit Keyfiles möglich ist. Wenn man kein Keyfile für UserB@RechnerB hat bzw. das Keyfile nicht unter ~/.ssh/config referenziert hat, kann so eine Meldung schonmal vorkommen.
hm, ich verwende nur Keyfiles, dürften wohl die anderen Bedingungen bei mir nie zugetroffen haben :lol:
vielleicht ist das aber auch eine der ganz üblen Übersetzungen; bei mir ist überall Englisch eingestellt

edit: Im Fehlerfall bekomme ich ein "Permission denied (publickey)." und nicht ein "weitere logins nur von gleicher Datenstation aus möglich" :lol: :lol:

Gruß
gms

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 04.10.2007 17:25:42

Also ich habe auch überall keys hinterlegt für meinen persönlichen Benutzer.

Das letzte System in der Kette ist ein HP-UX.
Oh, yeah!

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 04.10.2007 17:32:47

kannst du vor dem fehlerhaften Loginversuch die LANG Environment - Variable auf "en" setzen, damit wir herausfinden wie die englische Fehlermeldung lautet, glaube nicht, daß das mit den Keys was zu tun hat, klingt eher nach einem Limit ( nur welche Datenstation ist die Gleiche :? )

Gruß
gms

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 04.10.2007 17:44:43

Werde es gleich mal probieren, wenn ich wieder zu Hause bin und dann das Ergebnis hier posten.
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 04.10.2007 20:36:05

So, habe es mal probiert und hoffe, dass ich es richtig verstanden habe.

Habe die nicht gesetzte LANG-Variable auf rechnerB auf en gesetzt:

Code: Alles auswählen

export LANG=en
Dann habe ich von rechnerB (daniel@rechnerB) ein

Code: Alles auswählen

ssh -l user rechnerB
gemacht und erhalte dann folgende Fehlermeldung:

Code: Alles auswählen

Weiterer Login nur von gleicher Datenstation oder Systemconsole erlaubt!
Connection to rechnerB closed.
[edit]
Woraus oder wie setzt sich bei der DISPLAY-Varible das :X.0 zusammen?
Woher weiß ich, ob ich :1.0 oder :20.0 oder was auch immer angeben muss?
[/edit]
Oh, yeah!

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 04.10.2007 21:32:50

Duff hat geschrieben: und erhalte dann folgende Fehlermeldung:

Code: Alles auswählen

Weiterer Login nur von gleicher Datenstation oder Systemconsole erlaubt!
Connection to rechnerB closed.
Mist, ist aber auch logisch, die Fehlermeldung kommt vom Server und bleibt daher deutsch und unter Google findet man diese Fehlermeldung nicht
Duff hat geschrieben: Woraus oder wie setzt sich bei der DISPLAY-Varible das :X.0 zusammen?
Woher weiß ich, ob ich :1.0 oder :20.0 oder was auch immer angeben muss?
das ist einfach eine eindeutige Nummer für den X-Server. Im Fall von ssh wird bei einer Verbindung mit X11 Forwarding, ein "proxy-X-Server" auf dem verbundenen Server gestartet, dazu wird ein freier Port gesucht und die DISPLAY Variable entsprechend gesetzt, sodaß ssh daraus auch wieder den Port ermitteln kann

Code: Alles auswählen

gms@gms4:~$ echo $DISPLAY
localhost:11.0
gms@gms4:~$ netstat -tlpn  | grep 11
tcp        0      0 127.0.0.1:6011          0.0.0.0:*               LISTEN     -
Wenn mehrere solche Prozesse aufscheinen, wirst du ohne die DISPLAY Variable vor dem "su - user" zu kennen, auch nicht wissen, welcher Port zu deiner ssh-Session gehört und du wirst daher auch nicht die DISPLAY Variable nach dem "su - user" korrekt setzen können.

Gruß
gms

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 05.10.2007 07:40:37

Ich dachte eigentlich immer, dass ich die DISPLAY-Variable auf die IP-Adresse des Start-Rechner setzen muss, weil ich ja versuche einen Tunnel vom Start-Rechner bis zum Ziel-Rechner auf zubauen.

Sprich, wenn nun ein

Code: Alles auswählen

ssh -l user rechnerB
nicht funktioniert, habe ich keine Chance?
Oh, yeah!

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 05.10.2007 08:36:28

irgendwie bringst du da etwas mächtig durcheinander

x11-forwarding enabled: auf dem "Ziel-Rechner" wird von ssh ein "proxy-X-Server" gestartet und ein Tunnel vom "Start-Rechner" zum "Ziel-Rechner" eingerichtet, das DISPLAY muß daher auf den "Ziel-Rechner" zeigen ( Tunnel-Endpunkt)

Code: Alles auswählen

gms2 ~ # echo $DISPLAY
:1012.0
gms2 ~ # ssh -X gms4
root@gms4:~# echo $DISPLAY
localhost:10.0
root@gms4:~# xclock
root@gms4:~# logout
Connection to gms4 closed.
x11-forwarding disabled: es wird kein Tunnel eingerichtet, das DISPLAY muß daher auf den "Start-Rechner" zeigen:

Code: Alles auswählen

gms2 ~ # echo $DISPLAY
:1012.0
gms2 ~ # xhost +gms4
gms4 being added to access control list
gms2 ~ # ssh -x gms4
root@gms4:~# export DISPLAY=gms2:1012.0
root@gms4:~# xclock

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 05.10.2007 08:40:46

Ok, vielleicht sollte ich das ganze dann mal mit X11-forwarding auf disabled probieren?
Oh, yeah!

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 05.10.2007 08:49:01

Duff hat geschrieben:Ok, vielleicht sollte ich das ganze dann mal mit X11-forwarding auf disabled probieren?
dein aktuelles Problem ist ja die Verbindung über ssh zur HP-UX und hat ja eigentlich nichts mit X11 zu tun, oder sehe ich da etwas falsch ? Habt ihr keinen der sich auf euerer HP-UX auskennt und mit der obigen Fehlermeldung etwas anfangen kann ? Da ist sicherlich irgendeine Limitierung im Spiel, oder versuchst du die Verbindung als "root" aufzubauen und eine Verbindung als "root" ist nicht erlaubt ? Könnte das die Ursache für diese Fehlermeldung sein?

Vorsicht: mit ausgeschaltetem X11-forwarding ( ohne Tunnel ), werden die Daten des X11-Protokolls unverschlüsselt übertragen!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 05.10.2007 09:07:51

gms hat geschrieben:
Duff hat geschrieben:Ok, vielleicht sollte ich das ganze dann mal mit X11-forwarding auf disabled probieren?
dein aktuelles Problem ist ja die Verbindung über ssh zur HP-UX und hat ja eigentlich nichts mit X11 zu tun, oder sehe ich da etwas falsch ? Habt ihr keinen der sich auf euerer HP-UX auskennt und mit der obigen Fehlermeldung etwas anfangen kann ? Da ist sicherlich irgendeine Limitierung im Spiel, oder versuchst du die Verbindung als "root" aufzubauen und eine Verbindung als "root" ist nicht erlaubt ? Könnte das die Ursache für diese Fehlermeldung sein?

Vorsicht: mit ausgeschaltetem X11-forwarding ( ohne Tunnel ), werden die Daten des X11-Protokolls unverschlüsselt übertragen!
Nee, probiere die Verbindung nicht als root (kenne ja das Passwort auch gar nicht ;-( )

Dann werde ich mal versuchen mich schlau zu machen.

Schonmal vielen Dank bis hierhin!
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 10.10.2007 09:09:18

So, habe mal mit den Verantwortlichen gesprochen und die haben es freigeschaltet, dass ich mich per

Code: Alles auswählen

ssh -l user rechnerB
nun anmelden kann.
Oh, yeah!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 30.10.2007 15:24:40

Habe noch eine "bessere" Lösung gefunden. Und zwar:

Code: Alles auswählen

daniel@debian:/home/daniel> echo $DISPLAY
<IP-Adresse>:15.0
daniel@debian:/home/daniel> chmod 777 .Xauthority
daniel@debian:/home/daniel> su - <user>
Password:
daniel@debian:/home/daniel> export DISPLAY=<IP-Adresse>:15.0
daniel@debian:/home/daniel> export XAUTHORITY=/home/daniel/.Xauthority
user@debian:/home/user> xclock
...
Geht auch!!!
Oh, yeah!

Benutzeravatar
hkalegre
Beiträge: 286
Registriert: 11.11.2005 14:32:08

Beitrag von hkalegre » 31.10.2007 15:44:07

na super:
chmod 777 .Xauthority

Die Sicherheitslücke schlechthin für X

Dafür gibt es xauth !

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 31.10.2007 18:38:10

hkalegre hat geschrieben:na super:
chmod 777 .Xauthority

Die Sicherheitslücke schlechthin für X

Dafür gibt es xauth !
Sorry, aber verstehe ich jetzt nicht so ganz.
Oh, yeah!

Antworten