Portál AbcLinuxu, 15. července 2025 12:32


Dotaz: export DISPLAY

Baf avatar 23.1.2012 14:43 Baf | skóre: 3 | blog: baf | Brno
export DISPLAY
Přečteno: 1141×
Odpovědět | Admin
potřebuji ze vzdáleného serveru (CentOS 5.6) spustit firefox 3.6 a display vyexportovat na moje Ubuntu11.10.

pokud zkusim:

export 192.168.55.55:0.0 firefox

dostanu Error: cannot open display: 192.168.55.55:0.0

xhost + jsem spustil, ip adresa je spravna.

Zkousel jsem i forwardX11 v ssh a take nepomohlo.


Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Luboš Doležel (Doli) avatar 23.1.2012 14:45 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: export DISPLAY
Odpovědět | | Sbalit | Link | Blokovat | Admin
Musíte se připojit pomocí ssh -X nebo ssh -Y. Pokud je X11 Forwarding povolený, tak už DISPLAY bude nastavené a nemusíte nic řešit.
Baf avatar 23.1.2012 14:47 Baf | skóre: 3 | blog: baf | Brno
Rozbalit Rozbalit vše Re: export DISPLAY
zkoušel jsem, DISPLAY není nastavený
Baf avatar 23.1.2012 14:49 Baf | skóre: 3 | blog: baf | Brno
Rozbalit Rozbalit vše Re: export DISPLAY
firefox 
Error: no display specified

echo $DISPLAY
    <----- nic
Baf avatar 23.1.2012 14:46 Baf | skóre: 3 | blog: baf | Brno
Rozbalit Rozbalit vše Re: export DISPLAY
Odpovědět | | Sbalit | Link | Blokovat | Admin
malá oprava:
export DISPLAY=192.168.55.55:0.0
firefox 
23.1.2012 15:45 ikarr
Rozbalit Rozbalit vše Re: export DISPLAY
takhle to nefunguje. Je zapotřebí "ssh -X ...." Pokud to není zakázané, tak se $DISPLAY nastaví samo na

localhost:10.0

(z toho localhost:10.0 si to bere ssh a tuneluje to na druhý počítač)

U Mozilly ale funguje jakýsi bazmek, který vždy směřuje požadavky na lokální instalaci. Takže pokud chcete firefox opravdu běžet na druhém stroji, musíte ho spustit takto:

firefox --no-remote
Baf avatar 23.1.2012 17:41 Baf | skóre: 3 | blog: baf | Brno
Rozbalit Rozbalit vše Re: export DISPLAY
jak poznám, že to není zakázané?

zkoušel jsem:
ssh -X
zkoušel jsem na ssh klientovi ~/.ssh/config
...
ForwardX11 yes
...
na serveru je v configu sshd
X11Forwarding yes
Při této konfiguraci je $DISPLAY nenastavena
23.1.2012 18:09 Kit
Rozbalit Rozbalit vše Re: export DISPLAY
Musíš z klienta spustit
ssh -X user@server
Baf avatar 23.1.2012 18:24 Baf | skóre: 3 | blog: baf | Brno
Rozbalit Rozbalit vše Re: export DISPLAY
to spouštím, název serveru jsem jen neuvedl v komentáři, uživatel je stejný, takže ani uvedený být nemusí. Spouštím:
ssh -X vrba@integra
to ale na problému nic nemění. Na server se přihlásím, ale nefunguje mi ani forward X11 pomocí ssh ani export DISPLAY.
23.1.2012 18:41 l4m4
Rozbalit Rozbalit vše Re: export DISPLAY
Tak pro začátek, když to spustíš s -vv, vypíše to něco jako
debug2: x11_get_proto: /usr/bin/xauth  list :0.0 2>/dev/null
debug1: Requesting X11 forwarding with authentication spoofing.
debug2: channel 0: request x11-req confirm 0
resp. okolo nějakou chybu, proč to neforwarduje?
Baf avatar 23.1.2012 17:50 Baf | skóre: 3 | blog: baf | Brno
Rozbalit Rozbalit vše Re: export DISPLAY
přesněji v sshd configu mám:
AllowTcpForwarding yes
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
a pokud spustím
-bash-3.2$ xclock 
Error: Can't open display: 
rADOn avatar 23.1.2012 18:25 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: export DISPLAY
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pleteš dokupy dva různé způsoby. Pokud použiješ X forwarding v ssh tak ssh na cílovém stroji sám nastaví DISPLAY na _místní_ port kam se navěsí a zajistí předání na tvojí mašinu ve vlastní režii. Na tvojí mašině s X serverm leze X protokol z lokálního procesu ssh který vidí DISPLAY jako každý jiný tvůj proces, takže xhost by nemělo být vůbec potřeba. Do konfigráků ssh taky sahat nemusíš, stačí "ssh -X foo@bar" a měl bys DISPLAY mít nastavenou.

Druhý způsob je že sám nastavíš DISPLAY na _vzdálený_ port a necháš to na X klientovi, v tom případě kromě povolení přístupu přes xhost taky musíš povolit naslouchání X serveru na tcp socketu. Tahle část X protokolu se nepovažuje za moc bezpečnou takže afaik všechny distra to defaultně vypínají. Dělá to parametr "-nolisten tcp" při spouštění X serveru, čili to musíš dohledat a odmazat v initskriptu. A samozřejmě počítat s tím, že to není vypnuté pro nic za nic a otevírat takhle své X na nezabezpečnené síti není dobrý nápad.

Tunelování přes ssh má kapku overhead ale je to bezpečné, takže bych se raději držel toho. Honit po lan přímo X protokol má smysl jen ve speciálních případech, když se třeba chceš dostat na X server na úplně jiné mašině.
"2^24 comments ought to be enough for anyone" -- CmdrTaco
Baf avatar 23.1.2012 18:48 Baf | skóre: 3 | blog: baf | Brno
Rozbalit Rozbalit vše Re: export DISPLAY
chápu, že to jsou dva různé způsoby. Používal jsem oba, jen už je to pár let.

Pomocí ssh mám problém, že na cílovém stroji DISPLAY nenastaví a já nevím proč. To že to funguje 'samo', se v tomto případě neukázalo.

ten druhy případ máš pravdu:
/usr/bin/X :0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch -background none
23.1.2012 19:08 ikarr
Rozbalit Rozbalit vše Re: export DISPLAY
Nezůstal v nějakém .bashrc nebo něčem podobném zbytek kódu z dřívějška, který odnastaví DISPLAY? Co udělá toto:
ssh -X ...@....

export DISPLAY=localhost:10.0
firefox --no-remote

Jo, a ssh se dá volat ve verbose ( -X -v) modu a z něj se dá vyčíst, co se děje:
...
debug1: Requesting X11 forwarding with authentication spoofing.
...
Řešení 1× (Baf (tazatel))
Baf avatar 23.1.2012 19:06 Baf | skóre: 3 | blog: baf | Brno
Rozbalit Rozbalit vše Re: export DISPLAY
díky za tip, v případě Ubuntu 11.10 jde o /etc/lightdm/lightdm.conf
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
xserver-allow-tcp=true 
funguje

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.