Portál AbcLinuxu, 4. května 2025 00:26

X protokol je _neefektívny_

20.8.2005 11:03 | Přečteno: 1389× | seriózne

Rozbehal som X11-forwarding cez ssh. Autentifikáca X klientov pri forwardovaní pomocou ssh je úplne automatická a omnoho menej náročná na používateľa. Ak chcete Spúšťať aplikácie na jednom počítači a nechať ich zobrazovať na dryuhom, rád sa s Vami podelím 0 prvú verziu Mini-HOWTO-ssh-remote-X-Apps.

Upozorňujem Vás, že je to len prvá verzia a musím si ju dať skritizovať a opraviť ju.

Vzdialené X11 aplikácie pomocou preposielania X11 protokolu pomocou ssh

  1. Úvod
  2. Nastavenie ssh servéru
  3. Nastavenie ssh klienta
  4. Pripájenie
  5. Záver a upozornenie

Úvod

Narozdiel od xhost a xauth authentifikácie, preposielanie sieťových paketov protokolu X11 je veľmi jednoduché spojazdniť a pritom veľmi bezpečné. autentifikácia pomocou xhost je nebezpečná, pretože X servér príjme a autentifikuje každé spojenie z IP adresy, alebo domény, ktoré sú povolené v textovom konfiguračnom súbore.

Rozbehnúť autentifikáciu pomocou xauth je veľmi zložité a často si s tým človek neporadí. Navyše prenos paketov medzi autentifikovaným klientom a servérom nieje nijak kódovaný.

Preposielanie paketov pomocou ssh je jednoduché, pretože si žiada jeden konfiguračný riadok na klientskom počítači a jeden na servéri. Autentifikácia je bezpečná a jednoduchá, pretože stačí prejsť autentifikáciou ssh démona na servéri. Bezpečnosť zaručuje SSL kódovanie SSH protokolu.

Nastavenie ssh servéru

Servér je počítač, na ktorom bude bežať X aplikácia. Do konfiguráčného súboru ssh démona, umiestneného pravdepodobne v ceste /etc/ssh/sshd_config, pridajte riadok:

X11Forwarding yes

Týmto umožníte ssh démonovi otvoriť port, cez ktorý bude posúvať pakety a nastaviť pri pripojení klienta premennú prostredia DISPLAY.

Nastavenie ssh klienta

Klient je servér, na ktorom beží X servér a s ktorého na pripojíme na ssh servér. Do konfiguráčného súboru ssh klienta, umiestneného pravdepodobne v ceste /etc/ssh/ssh_config, pridajte riadok:

ForwardX11 yes Táto voľba umožní ssh klientovi poslať príjmať packety protkolu X11 a posúvať ich X servéru.

Pripojenie

Spustite X servér na počítači, kde chcete aplikáciu zobrazovať. Ak neviete, čo to X servér je, spustite svoje grafické prostredie, pri jeho spúšťaní sa X servér spustí.

V terminále, alebo virtuálnej konzole sa uistite, že v ňom máte správne nastavenú premennú prostredia DISPLAY:

uzivatel@x.server$ echo $DISPLAY
:0

Pripojte sa na počítač, kde chcete spustiť X aplikáciu. Po úspešnom pripojení sa uistite, že premenná prostredia DISPLAY je nastvená na správne:

uzivatel@x.server $ ssh uzivatel@ssh.server
Password:
uzivatel@ssh.server $ echo $DISPLAY
localhost:10.0

Ak je všetko nastavené správne, môžete spustiť X aplikáciu a kochať sa neefektivitou protokolu X11, ktorý je za niekoľko sekúnd pochybovania mišou a kreslenia na servéri, preniesť po sieti jeden Megabyte dát:

uzivatel@ssh.server $ xaplikácia

Záver

Rozbehanie vzdialených X aplikácií je vďaka SSH protokolu jednoduché, ale nie dokonalé. Ak sa Vám nepodarí preposielanie paketov protokolu X11 rozbehať, skúste porozmýšlať, či v konfigurácii niektorej so súčastí Vášho operačného systému nie je žiadne pravidlo, ktoré SSH preposielanie znemožňoje.

       

Hodnocení: -

zatím nehodnoceno
        špatnédobré        

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

Komentáře

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

Vložit další komentář

20.8.2005 11:29 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Howto
Odpovědět | Sbalit | Link | Blokovat | Admin
Pokud to má být howto, tak tam pár věcí chybí:

1. Povolovat bezpodmínečně X11Forwarding se nedoporučuje. Nechce-li se ti psát k ssh volbu -X, můžeš si v konfiguráku nastavit forwarding pro konkrétní důvěryhodné počítače pomocí direktivy Host.

2. Novější ssh mají dvě různé úrovně povolení X11 forwardingu: normální (-X) a trusted (-Y). Pokud nemáš opravdu štestí na aplikace, které chceš vzdáleně spouštět, tak potřebuješ -Y. Můžeš začít -X, ale když začneš dostávat
X Error of failed request:  BadCosiKdesi
tak to změnit na -Y.

3. Nemáš-li rychlé spojení (např. jakákoli LAN je dnes asi dost rychlá), použitelnost takhle spouštěných aplikací se výrazně zvýší kompresí: -C.
Luk avatar 20.8.2005 13:27 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
Rozbalit Rozbalit vše Re: Howto
Pokud by chtěl někdo používat X aplikace přes modemové připojení (což by tedy dělal jen skutečný masochista), je zapnutí komprese zcela nezbytné. Komprese modemu je na šifrovaná data naprosto neúčinná (resp. modemy tato data často ani nezkoušejí komprimovat, protože by to nemělo smysl).
Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
20.8.2005 13:59 Marián André | skóre: 10 | blog: Qblog
Rozbalit Rozbalit vše Alternatíva
Odpovědět | Sbalit | Link | Blokovat | Admin
Alternatívou k vzdialenému spúšťaniu X aplikácií môže byť použitie VNC. Efektivita sa zvyšuje najmä vďaka tomu, že sa prenášajú len rozdiely medzi jednotlivými obrazovkami.

Gramatická poznámka: Z akého jazyka vyskočila príšera "servér" ?
O mne.
20.8.2005 14:45 Tomáš Bláha
Rozbalit Rozbalit vše Re: Alternatíva
Efektivita sa zvyšuje najmä vďaka tomu, že sa prenášajú len rozdiely medzi jednotlivými obrazovkami.

Podle mě je X protokol ze své povahy efektivnější. Hlavně kvůli způsobu zacházení s fonty. Tam, kde VNC přenese obrázek vykresleného nápisu, tam X přenese příkaz "tady mi napiš takovýto nápis".
Luk avatar 20.8.2005 15:48 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
Rozbalit Rozbalit vše Re: Alternatíva
To ovšem ale předpokládá, že bude mít X server daný font k dispozici (ať už přímo nebo z fontserveru). VNC to nepotřebuje, zato ale umí JPEG kompresi, i když nevím, jak moc ji používá.
Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
20.8.2005 21:40 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Alternatíva
Tak to máte asi nějaké zázračné VNC. Několikrát jsem to zkoušel (Athlon XP 1800+, Athlon 700, 100 Mb/s přímo kabelem) a proti klasickému X11 to bylo zoufale trhané.
20.8.2005 22:52 Marián André | skóre: 10 | blog: Qblog
Rozbalit Rozbalit vše Re: Alternatíva
Nikdy som s tým nemal problémy. Dokonca ani v podobných konfiguráciách siete, teda 100 Mb/s LAN.
20.8.2005 23:24 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Alternatíva
Teď nechápu, co myslíte větou "Dokonca ani v podobných konfiguráciách siete, teda 100 Mb/s LAN." To jako že 100 Mb/s ethernet je na vzdálenou grafickou práci pomalý? To snad ne - na škole jsem pracoval s klasickým X terminálem (skutečný X terminál od Wyse) na 10 Mb/s ethernetu (na koaxu (!)) a neměl jsem s tím nejmenší problém…
21.8.2005 00:24 Marián André | skóre: 10 | blog: Qblog
Rozbalit Rozbalit vše Re: Alternatíva
Několikrát jsem to zkoušel (Athlon XP 1800+, Athlon 700, 100 Mb/s přímo kabelem) a proti klasickému X11 to bylo zoufale trhané.
Buď som tu niečo nepochopil, alebo si protirečíte ? Vychádzal som z toho, že ste uviedli prenosovú rýchlosť a teda sa sťažujete na trhanosť kvôli sieti. Vzdialené grafické aplikácie púšťam na linkách rôznych rýchlostí a rôznych kvalít (najpomalšia z nich má oneskorenie cca 3 sekundy). Aj tu vidím veľké výhody VNC pripojenia oproti "klasickému" (v kontexte tejto debaty) pripojeniu. Už sa vám stalo, že vám padla linka uprostred vykresľovania modálneho okna?
21.8.2005 12:42 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Alternatíva
Ne, stěžuji si na trhanost, která je dána samou koncepcí VNC, kde se na vzdáleném systému něco nakreslí na obrazovku a výsledná bitmapa se přenese na stranu uživatele. Zatímco v případě vzdálené práce pomocí X11 se přenášejí pouze grafická primitiva určená k vykreslení. Zejména při zobrazování textu je ten rozdíl propastný. Takže co bohatě stačí jednomu přístupu, druhému stačit nemusí. A to samozřejmě nemluvím o takových principiálních rozdílech, jako že pro práci přes X11 nepotřebuji na druhém stroji grafické prostředí…
21.8.2005 14:45 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Alternatíva
Megabity...

Většinu aplikací -- pokud nejsou blbě napsané a nemají spousty zbytečných efektů -- lze s ssh -C normálně používat při pár set kilobitech/s (záleží ovšem i na round-tripu). V podstatě cokoli, co i v ČR nabízejí jako broadband, už stačí. S VNC bych chtěl vidět, jak se pracuje přes kabelovku nebo ADSL...
21.8.2005 15:26 Marián André | skóre: 10 | blog: Qblog
Rozbalit Rozbalit vše Re: Alternatíva
Pokiaľ ide o VNC cez káblovku - absolútne žiaden problém.
21.8.2005 00:22 nxt
Rozbalit Rozbalit vše Re: Alternatíva
X prenasa jedno okno. VNC prenasa cely desktop.

To je zasadny rozdiel. A do problemov s clipboardom sa radsej ani nebudem pustat :)
21.8.2005 00:26 Marián André | skóre: 10 | blog: Qblog
Rozbalit Rozbalit vše Re: Alternatíva
X prenáša jedno okno vždy. VNC prenáša celý desktop raz (v drvivej väčšine prípadov). To je zásadný rozdiel.
21.8.2005 00:34 nxt
Rozbalit Rozbalit vše Re: Alternatíva
To co hovoris ty, je z hladiska vyuzitia siete. Ja som to zhodnotil z hladiska funkcnosti. A ta je pre mna dolezitejsia. Ked si cez X pustim aplikaciu, ktora nie je full-screen, tak mi zaberie len cast obrazovky. Keby som to spravil cez VNC, tak sa mi kresli aj ten zbytocny druhy desktop. Alebo musim JA a RUCNE carovat s velkostou okna a scrollbarmi, aby vom v tom VNC videl len tu jednu aplikaciu.

A v X sa neprenasa VZDY cele okno. Prenasaju sa iba eventy, z ktorych jeden obcas moze byt prekreslenie celeho okna.

VNC ma mozno mensie naroky na siet, ale plati sa za to inymi nevyhodami. Dalsi window manager. Clipboard, pri ktorom nikdy na 100% neviem, co sa mi ktorym smerom prenasa a co nie.
21.8.2005 00:42 Marián André | skóre: 10 | blog: Qblog
Rozbalit Rozbalit vše Re: Alternatíva
Zrejme som zaťažený na VNC :), ale aj z hľadiska funkčnosti vidím výhody vo VNC - najmä to, že aplikácia sa kreslí na vzdialenej strane vo vncserveri a ku klientovi sa prenáša kópia. Inými slovami, pre mňa osobne je veľmi výhodné po opätovnom pripojení nájsť aplikáciu presne v tom istom stave, v akom som ju zanechal a okamžite pokračovať v práci.

Pokiaľ ide o clipboard, nikdy som s ním nemal problémy. Môžeš popísať nejaký konkrétny prípad ?
21.8.2005 09:58 nxt
Rozbalit Rozbalit vše Re: Alternatíva
V praci som nuteny VNC pouzivat, z Linuxu na Linux. Prave kvoli tomu, ze aplikacie po dopojenie nezmiznu. A pravidelne mam problem s clipboardom. V ramci VNC funguje dobre primary selection. Z VNC na lokalku tiez funguje dobre a vybrany text skonci aj v primary selection, aj v primary clipboard. Ale z lokalky do VNC to funguje iba niekedy a este som neprisiel na to, cim je to podmienene.
20.8.2005 15:21 #Tom
Rozbalit Rozbalit vše Vzdálené spouštění programů
Odpovědět | Sbalit | Link | Blokovat | Admin
Na tyto věci je vhodné použít NX od firmy NoMachine. Zdrojové kódy serveru jsou k dispozici s licencí GNU GPL, má o dost menší nároky, než samotné ssh se zapnutou kompresí. (U NX se ssh využívá také, ale komprese je efektivnější a doplněná o vyrovnávací paměti na obou stranách.) Mimochodem mě překvapilo, že komprese není u ssh zapnutá automaticky.
Yin avatar 20.8.2005 16:10 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
Rozbalit Rozbalit vše diki
Odpovědět | Sbalit | Link | Blokovat | Admin
Ďakujem, všetkým prispievateľom za informácie... písal som to vo firefoxe, ktorý som spustil ako prvú app cez ssh vôbec.
Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
20.8.2005 21:36 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše nadpis?
Odpovědět | Sbalit | Link | Blokovat | Admin
Nějak mi uniká souvislost nadpisu s obsahem postu. Když jsem viděl nadpis, myslel jsem si, že nám sdělíte, proč se domníváte, že je X11 protokol neefektivní… a ono je to o něčem úplně jiném.
Yin avatar 21.8.2005 11:50 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
Rozbalit Rozbalit vše Re: nadpis?
Dúfal som, že odpoveď nájdete v diskusii... ale ešte to nikdo nepovedal nahlas a zrozumiteľne... ja mám takú vzdialenú app., že sa na 100MB/s sieti s ňou ťažko pracuje - Firefox.
Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
21.8.2005 12:47 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: nadpis?
Tak jsem si to vyzkoušel, nemám s tím problém. Dokonce i vykreslování větších bitmapových obrázků mne mile překvapilo, ne že by to bylo ideální, ale čekal jsem to horší.
21.8.2005 13:16 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: nadpis?
Ještě mne napadl jeden možný problém: ono se na to často zapomíná, ale když X11 forwardujete přes SSH tunel, velmi výrazně tím rostou nároky na procesor (na obou stranách).
Yin avatar 21.8.2005 13:25 Yin | skóre: 39 | blog: Yinotopia | Slovesnko, Košice
Rozbalit Rozbalit vše Re: nadpis?
Presne... a ten počítač, kde spúšťam Firefox, má problémi Firefox vykresliť aj u seba...
Nikdy nie je tak zle, aby to jeden poharik nemohol ešte zhorsiť.
21.8.2005 13:54 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: nadpis?
Aha. A proto to považujete za problém efektivity X11 protokolu? Tak to vám opravdu nerozumím…

Jinak, pokud to snad nebylo jasné, měl jsem na mysli nároky na procesor dané šifrováním a autentizací přenášených dat. Ty nemají nic společného s X11, vzniknou i při tunelování čehokoli jiného (a naopak, X11 lze vzdáleně používat i bez SSH).

21.8.2005 12:43 petr_p
Rozbalit Rozbalit vše SSH a xauth
Odpovědět | Sbalit | Link | Blokovat | Admin
Z tveho HOWTO neprimo plyne, ze SSH nepouziva xauth autentizaci. Neni to pravda. SSH klient si od lokalniho uzivatele vyzobne X cookie, sifrovane jej prenese na SSH server, kde ho ulozi do .xauth keyringu. X klienti se pak jim prokazuji X serveru.

Jako jednoduchy dukaz se prihlas na server, kde xauth utilitka neni, s parametrem -v. SSH server ti vynada, ze nemohl prenest X cookie a promennou DISPLAY nenastavi:
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Remote: No xauth program; cannot forward with spoofing.
21.8.2005 13:15 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: SSH a xauth
Tak tohle také není pravda. Zkuste si porovnat cookie na klientovi a na serveru. Jako klient vůči lokálnímu X serveru na straně uživatele vystupuje ssh klient. SSH démon na druhé straně tu cookie znát vůbec nepotřebuje. On potřebuje xauth jen k tomu, aby mohl do databáze přidat vlastní vygenerovanou cookie pro ten virtuální server, na který odkáže shell (nebo jiný program) proměnnou DISPLAY

Založit nové vláknoNahoru

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