[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Starta X-applikationer från ssh



Den 31 december 2010 02:06 skrev Stefan Alfredsson <alfs@debian.org>:
>
> On 30 Dec 2010, at 23:53, Ivar Edebro wrote:
>> Nu har jag,
>> när KDE startat upp, skrivit xhost + i en konsol. Då kan jag logga in med
>> ssh från en annan dator och starta lokala X-kommandon.
>>
>> Det stora problemet nu är säkerhetshålet att använda xhost +.
>
> En något säkrare variant är att bara öppna för vissa IP-adresser. T.ex. xhost +192.168.0.123.

Mycket bättre lösning.  Men fortfarande kan alla som loggar (hackar)
in sig på den maskinen komma åt X11-servern.  Borde i det här fallet
även fungera med xhost +localhost och sedan ansluta till localhost:1?
Det eftersom han ju använder ssh för att logga in på maskinen.

>> Någon som kan tipsa mig eller länka till läsning till hur jag på ett
>> säkrare sätt kan auktorisera en eller flera datorer att starta lokala
>> x-kommandon på lokal klient?
>
> MIT magic cookies via xauth är mekanismen för att lösa detta. Det går ut på att den som vill ansluta till en X-server måste skicka med en "hemlig/delad nyckel", som angetts av den som startat X-servern.
>
> Loggar du in med ssh till X-servern och med samma användare som startat X går detta automatiskt eftersom den då använder din egen ~/.Xauthority . Loggar du in med ssh med en annan användare, eller om du vill fjärransluta med X-protokollet, behöver du kopiera kakan.
>
> Med xauth exporteras kakorna och kan importeras på de maskiner du vill köra X-applikationen ifrån.
> Manualsidan xauth(1) har ett exempel som du kan använda:
>
> EXAMPLE
>       The most common use for xauth is to extract the entry for  the  current
>       display,  copy  it  to  another  machine,  and merge it into the user's
>       authority file on the remote machine:
>
>               %  xauth extract - $DISPLAY | rsh otherhost xauth merge -
>
>
> (byt ut rsh mot ssh). När du sedan på otherhost kör en X-applikation använder den ~/.Xauthority för att autenticera mot den display du ansluter till (dvs din KDE session).
>
> Se också till att din X-server tillåter TCP-uppkopplingar. Detta är avslaget som standard. Justeras i /etc/X11/xinit/xserverrc:

Detta är väl inte nödvändigt om man kör X11-klienten från samma
maskin?  Bara sätta omgivningsvariabeln "DISPLAY till ":1" eller
starta kommandot med växeln "-display :1"  om man vill använda den
andra arbetsplatsen.

> exec /usr/bin/X11/X -nolisten tcp
>
> Ta bort -nolisten tcp och starta om X.
>
> Mvh,
>  Stefan

God Fortsättning och Gott Nytt År.
Anders


Reply to: