Qual è la differenza tra "ssh -Y" (inoltro X11 attendibile) e "ssh -X" (inoltro X11 non attendibile)?

100

Qual è la differenza tra ssh -Y (inoltro X11 attendibile) e ssh -X (inoltro X11 non attendibile)? Per quanto ho capito, ha qualcosa a che fare con la sicurezza, ma non ho capito la differenza e quando usare quale.

    
posta Martin Ueding 16.04.2011 - 21:42

4 risposte

76

Entrambe le opzioni hanno qualcosa a che fare con l'inoltro X11. Ciò significa che se abiliti questo puoi usare un client grafico attraverso la tua sessione SSH (ad esempio, usa Firefox o qualcos'altro).

Se si utilizza ssh -X remotemachine , la macchina remota viene considerata come un client non affidabile. Quindi il tuo client locale invia un comando alla macchina remota e riceve l'output grafico. Se il tuo comando viola alcune impostazioni di sicurezza, riceverai invece un errore.

Ma se usi ssh -Y remotemachine la macchina remota viene considerata come client fidato. Quest'ultima opzione può aprire problemi di sicurezza. Perché altri client grafici (X11) possono sniffare i dati dalla macchina remota (creare schermate, fare keylogging e altre cose sgradevoli) ed è anche possibile modificare quei dati.

Se vuoi saperne di più su queste cose ti suggerisco di leggere la manpage Xsecurity o la specifica dell'estensione di sicurezza X . Inoltre puoi controllare le opzioni ForwardX11 e ForwardX11Trusted nel tuo /etc/ssh/ssh_config .

    
risposta data qbi 16.04.2011 - 22:38
20

Usa nessuno quando non hai bisogno di eseguire programmi X11 da remoto; usa -X quando lo fai; e ipoteticamente usa -Y se un programma X11 ti interessa funziona meglio con -Y rispetto a -X. Ma attualmente (Ubuntu 15.10), -X è identico a -Y, a meno che non si modifichi ssh_config per dire ForwardX11Trusted no . -X originariamente è stato progettato per abilitare l'estensione X Security degli anni '90, ma è vecchio e inflessibile e causa l'arresto anomalo di alcuni programmi, quindi viene ignorato per impostazione predefinita.

Sia ssh -Y che -X consentono di eseguire un programma X11 su una macchina remota, con le sue finestre che appaiono sul monitor X locale. Il problema è ciò che il programma è autorizzato a fare sulle finestre di altri programmi e sul server X stesso.

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

Trusted l'inoltro X11 è abilitato da -Y . Questo è il comportamento storico. Un programma con accesso al display è affidabile con accesso al display intero . Può eseguire lo screenshot, il keylog e iniettare l'input in tutte le finestre di altri programmi. E può usare tutte le estensioni del server X, incluse quelle come la grafica accelerata, che sono le esposizioni di sicurezza. Che è buono per funzionare senza problemi, ma male per la sicurezza. Ti stai fidando che i programmi remoti siano sicuri quanto i tuoi programmi locali.

Untrusted l'inoltro X11 tenta di limitare i programmi remoti ad accedere solo alle loro finestre proprie e di usare solo quelle parti di X che sono relativamente sicure. Che suona bene, ma attualmente non funziona bene nella pratica.

Il significato di -X dipende attualmente dalla configurazione ssh.

Su Ubuntu 14.04 LTS, a meno che tu non modifichi il ssh_config , non vi è alcuna differenza tra -X e -Y . "[B] perché troppi programmi si bloccano attualmente in modalità [non attendibile]."

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

Se ForwardX11Trusted no , quindi -X abilita l'inoltro non attendibile . Altrimenti, -X viene trattato allo stesso modo di -Y , ritenendo che i programmi remoti con accesso display siano amichevoli.

    
risposta data Mitchell 30.03.2016 - 18:08
1

Sì. -Y è per l'inoltro X11 fidato , mentre -X è per l'inoltro X11 non attendibile . L'inoltro X11 consente solo di utilizzare le applicazioni X11 (ad esempio grafiche) su una sessione SSH.

Non sono sicuro di quale sia la differenza significativa tra le connessioni X11 affidabili e non attendibili, ma sono sicuro che abbia a che fare con la configurazione lato server (ad esempio ssh-config, sshd-config, ecc.). Verifica con il tuo server o amministratore di rete su quale flag utilizzare.

    
risposta data Tyler K. 16.04.2011 - 22:00
1

L'opzione -X abilita l'inoltro 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.

L'opzione -Y , corrispondente alla direttiva ForwardX11Trusted in ssh_config (5), è ancora meno sicura perché rimuove i controlli di estensione X11 SECURITY.

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

È più sicuro usare -x

-x   Disables X11 forwarding.
    
risposta data Ortomala Lokni 10.01.2016 - 02:57

Leggi altre domande sui tag