X-server,X-terminal (LONG)

Alexandr Malusek malusek na hroch.ujf.cas.cz
Úterý Leden 27 19:04:38 CET 1998


kebrle.jan na nex.tel.cz writes:

> > > pokud chci pustit nejaky Xprogram ze vzdaleneho pocitaci na svem
> > > pocitaci , hlasi mi to nasledujici chybu.
> > > # xterm -display 10.1.7.43:0.0
> > > Xlib:  connection to "10.1.7.43:0.0" refused by server
> > > Xlib:  Invalid MIT-MAGIC-COOKIE-1 key
> > > Error: Can't open display: 10.1.7.43:0.0
> >
> > Od: Leos Bitto[SMTP:bitto na atrey.karlin.mff.cuni.cz]
> >
> > Na pocitaci 10.1.7.43 napiste xhost +jmeno.vaseho.pocitace.
>
> dobre, ale to by mnelo probihat automaticky ne?

Bylo by divne, kdyby na toto tema neexistovalo nejake HOWTO, pripadne
FAQ, ale pri zbeznem hledani jsem nic nenasel. Proto to alespon
castecne zkusim popsat.

Vas X-klient (Xprogram) se pokusil o autentikaci u X-serveru
prostrednictvim MIT-MAGIC-COOKIE-1 protokolu, ale neuspel. Pan Bitto
Vam poradil pouzit jiny autentikacni mechanismus, tzv. "host access",
ktery se konfiguruje pomoci prikazu xhost. Pouziti je jednodussi, ale
autentikace je mene bezpecna - po zadani vyse uvedeneho prikazu muze
kdokoliv, kdo je nalogovan na pocitaci "jmeno.vaseho.pocitace",
pristupovat na Vas X-server.

Zpet k MIT-MAGIC-COOKIE-1. Jeho vlastnosti jsou posany v "man Xsecurity",
konfigurace v "man xauth". Nejprve popisi situaci, kdy nebezi xdm.

Spustite-li X-Windows pomoci "startx -- -auth Xauthfile", pak X-server
nacte ze souboru Xauthfile odpovidajici MIT-MAGIC-COOKIE-1 "cookies".
(Server necte soubor .Xauthority, v mem pripade ani neakceptuje
"startx -- -auth .Xauthority"). X-klienti pri svem startu nacitaji
MIT-MAGIC-COOKIE-1 cookies ze souboru $HOME/.Xauthority. Pokud
souhlasi cookie klienta s cookie serveru, je pristup na X-server
povolen. Nasleduje ukazka, jak vytvorit soubory Xauthfile a
.Xauthority:

$ cd  # jsme v $HOME na xserver.name.cz
$ xauth -f Xauthfile add xserver.name.cz:0  MIT-MAGIC-COOKIE-1  \
    1234567890abcdef1234567890abcdef
$ xauth -f Xauthfile add xserver.name.cz/unix:0  MIT-MAGIC-COOKIE-1  \
    1234567890abcdef1234567890abcdef

Misto 12...ef uvedte libovolny 32-znakovy retezec hexadecimalnich
cislic. Jeho hodnotu tajte, (prava rw------). 

Cookies nyni preneste do souboru $HOME/.Xauthority.
V nejjedodussim pripade staci:

$ cp Xauthfile .Xauthority

Obecnejsi metoda, ktera zachova jiz nakonfigurovana cookies pro jine
X-servery, je:

$ xauth add xserver.name.cz:0  MIT-MAGIC-COOKIE-1 \
    1234567890abcdef1234567890abcdef
$ xauth add xserver.name.cz/unix:0  MIT-MAGIC-COOKIE-1 \
    1234567890abcdef1234567890abcdef

Radek s /unix je potreba jen pro klienty, kteri bezi na stejnem
pocitaci jako X-server.

Dalsi moznosti je napr:

$ xauth extract - xserver.name.cz:0 | rsh xclient.name.cz xauth merge -

Toto je potreba provest pro kazdy pocitac, na kterem budete spoustet
X-klienty - pokud samozrejme nesdili .Xauthority

Bezi-li xdm, pak pri kazdem zalogovani se hodnoty cookies meni.
(Snadno si to overite pres "xauth list"). To funguje, pokud klienti
sdili spolecny $HOME, pokud ne, pak je potreba po kazdem zalogovani
znovu hodnotu cookie na klientske pocitace rozdistribuovat.

No, snad to bylo alespon trochu srozumitelne - Vase chybove hlaseni
tedy bylo dano tim, ze X-client (Xprogram) si nacetl cookie pro Vas
X-server ze souboru .Xauthority (muselo tam byt, jinak by se
nepokousel o autentikaci pres MIT-MAGIC-COOKIE-1), ale na X-serveru
toto cookie bud nebylo vubec definovano, nebo melo jinou hodnotu.

Testoval jsem to na RH4.2, nepredpokladam, ze by se to v jinych
distribucich chovalo vyrazne odlisne. Jinak dalsi moznosti je pouziti
ssh. V tomto pripade si autentikaci zajistuje samo ssh a uzivatel se
nemusi o nic starat.

--
A. Malusek  (malusek na ujf.cas.cz)
UJF AV CR


Další informace o konferenci Linux