it-swarm.dev

Jaký je rozdíl mezi `ssh -Y` (důvěryhodné předávání X11) a` ssh -X` (nedůvěryhodné předávání X11)?

Jaký je rozdíl mezi ssh -Y (důvěryhodné předávání X11) a ssh -X (nedůvěryhodné předávání X11)? Pokud jsem to pochopil, má to něco společného s bezpečností, ale nepochopil jsem rozdíl a kdy použít které.

121
Martin Ueding

Obě možnosti mají něco společného s předáváním X11. To znamená, že pokud to povolíte, můžete pomocí relace SSH použít grafického klienta (např. Používat Firefox nebo něco jiného).

Pokud používáte ssh -X remotemachine se vzdáleným strojem se zachází jako s nedůvěryhodným klientem. Váš místní klient tedy odešle příkaz do vzdáleného počítače a obdrží grafický výstup. Pokud váš příkaz poruší některá nastavení zabezpečení, zobrazí se místo toho chyba.

Ale pokud použijete ssh -Y remotemachine se vzdáleným strojem se zachází jako s důvěryhodným klientem. Tato poslední možnost může otevřít bezpečnostní problémy. Protože jiní grafičtí (X11) klienti mohli čichat data ze vzdáleného počítače (dělat screenshoty, dělat keylogging a další ošklivé věci) a je dokonce možné tato data změnit.

Pokud se chcete o těchto věcech dozvědět více, doporučuji si přečíst Xsecurity manpage nebo X Security extension spec . Dále můžete zkontrolovat možnosti ForwardX11 a ForwardX11Trusted ve vašem /etc/ssh/ssh_config.

93
qbi

Pokud nepotřebujete vzdáleně spouštět programy X11, použijte ani. použijte -X když ano; a hypoteticky použijte -Y pokud program X11, na kterém vám záleží, pracuje lépe s -Y než s -X. Ale v současné době (Ubuntu 15.10) je -X identické s -Y, pokud neupravujete ssh_config říct ForwardX11Trusted no. -X bylo původně určeno k povolení rozšíření X Security z 90. let, ale to je staré a nepružné a havaruje některé programy, a proto je ve výchozím nastavení ignorováno.

Oba ssh -Y a -X vám umožní spustit program X11 na vzdáleném počítači, jehož okna se objeví na místním X monitoru. Problém je v tom, co program smí dělat s okny jiných programů a samotným X serverem.

local$ ssh -X remote
remote$ xlogo
# Runs xlogo on remote, but the logo pops up on the local screen.

Důvěryhodné X11 předávání je povoleno -Y. Toto je historické chování. Program s přístupem k displeji je důvěryhodný s přístupem k zobrazení celý. To může screenshot, keylog, a vstřikovat vstup do všech oken other programů. A může používat všechna rozšíření X serveru, včetně těch, jako je zrychlená grafika, které jsou bezpečnostními expozicemi. Což je dobré pro hladký chod, ale špatné pro bezpečnost. Důvěřujete vzdáleným programům, aby byly stejně bezpečné jako místní programy.

Nedůvěryhodné Předávání X11 se pokouší omezit vzdálené programy na přístup pouze k jejich vlastním oknům a na použití pouze těch částí X, které jsou relativně bezpečné. Což zní dobře, ale v současné době v praxi nefunguje dobře.

Význam -X aktuálně závisí na konfiguraci ssh.

Na Ubuntu 14.04 LTS, pokud neupravujete svůj ssh_config, není žádný rozdíl mezi -X a -Y. "[B], protože v [nedůvěryhodném] režimu dochází k selhání příliš mnoha programů."

ubuntu1404$ man ssh
...
 -X      Enables X11 forwarding.  This can also be specified on a per-Host
         basis in a configuration file.
         ...
         (Debian-specific: X11 forwarding is not subjected to X11 SECURITY
         extension restrictions by default, because too many programs cur‐
         rently crash in this mode.  Set the ForwardX11Trusted option to
         “no” to restore the upstream behavior.  This may change in
         future depending on client-side improvements.)

ubuntu1404$ grep ForwardX11Trusted /etc/ssh/ssh_config
#   ForwardX11Trusted yes

Pokud ForwardX11Trusted no, pak -X umožňuje nedůvěryhodné přeposílání. V opačném případě, -X je považováno za stejné jako -Y, důvěřující, že vzdálené programy s přístupem na displej jsou přátelské.

26
Mitchell

The -X volba umožňuje předávání X11:

-X   Enables X11 forwarding.  This can also be specified on a per-Host
     basis in a configuration file.

     X11 forwarding should be enabled with caution.  Users with the
     ability to bypass file permissions on the remote Host (for the
     user's X authorization database) can access the local X11 display
     through the forwarded connection.  An attacker may then be able
     to perform activities such as keystroke monitoring.

     For this reason, X11 forwarding is subjected to X11 SECURITY
     extension restrictions by default.  Please refer to the ssh -Y
     option and the ForwardX11Trusted directive in ssh_config(5) for
     more information.

Možnost -Y, odpovídající direktivě ForwardX11Trusted v ssh_config (5), je ještě méně bezpečné, protože odstraní ovládací prvky rozšíření X11 SECURITY.

-Y      Enables trusted X11 forwarding.  Trusted X11 forwardings are not
        subjected to the X11 SECURITY extension controls.

Je bezpečnější používat -x

-x   Disables X11 forwarding.
1
Ortomala Lokni