Qual è la differenza tra ssh -Y
(inoltro X11 affidabile) 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.
Qual è la differenza tra ssh -Y
(inoltro X11 affidabile) 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.
Risposte:
Entrambe le opzioni hanno a che fare con l'inoltro X11. Ciò significa che se lo abiliti, puoi utilizzare un client grafico attraverso la sessione SSH (ad esempio, utilizzare Firefox o qualcos'altro).
Se si utilizza ssh -X remotemachine
la macchina remota viene trattata come un client non attendibile. Quindi il client locale invia un comando al computer remoto e riceve l'output grafico. Se il tuo comando viola alcune impostazioni di sicurezza, riceverai invece un errore.
Ma se si utilizza ssh -Y remotemachine
la macchina remota viene trattata come un client attendibile. Quest'ultima opzione può aprire problemi di sicurezza. Perché altri client grafici (X11) potrebbero annusare i dati dal computer remoto (fare screenshot, fare keylogging e altre cose cattive) ed è persino possibile alterarli.
Se vuoi saperne di più su queste cose, ti suggerisco di leggere la manpage di Xsecurity o le specifiche dell'estensione di X Security . Inoltre, puoi controllare le opzioni ForwardX11
e ForwardX11Trusted
nel tuo /etc/ssh/ssh_config
.
-X
altri clienti è impossibile sniffare o alterare i dati?
-Y
invece che -X
in generale?
-Y
) e l'unico caso in cui ho capito che ciò può essere utile è quando il controllo di sicurezza sul lato server non è in qualche modo implementato / non compatibile. Ho anche letto che l'inoltro di X11 è generalmente uno strumento potente e pericoloso che dovrebbe essere trattato come tale.
Non utilizzare né quando non è necessario eseguire programmi X11 in remoto; usare -X
quando lo fai; e ipoteticamente usare -Y
se un programma X11 che ti interessa funziona meglio con -Y che con -X. Ma attualmente (Ubuntu 15.10), -X è identico a -Y, a meno che non modifichi ssh_config
per dirlo ForwardX11Trusted no
. -X era originariamente progettato per abilitare l'estensione X Security degli anni '90, ma è vecchia e non flessibile e arresta in modo anomalo alcuni programmi, quindi viene ignorata per impostazione predefinita.
Sia ssh -Y
e -X
lasciare che si esegue un programma X11 su un computer remoto, con le sue finestre che appaiono sul monitor X locale. Il problema è ciò che il programma è autorizzato a fare alle finestre di altri programmi e allo stesso server X.
local$ ssh -X remote
remote$ xlogo
# Runs xlogo on remote, but the logo pops up on the local screen.
L' inoltro X11 affidabile è abilitato da -Y
. Questo è il comportamento storico. Un programma con accesso al display è considerato affidabile con l'accesso all'intero display. Può fare screenshot, keylog e iniettare input in tutte le finestre di altri programmi. E può usare tutte le estensioni del server X, comprese quelle come la grafica accelerata, che sono esposizioni di sicurezza. Il che è buono per funzionare senza problemi, ma per la sicurezza. Ti fidi che i programmi remoti siano sicuri come i tuoi programmi locali.
L' inoltro X11 non attendibile tenta di limitare i programmi remoti all'accesso solo alle proprie finestre e all'utilizzo delle sole parti di X relativamente sicure. Il che suona bene, ma attualmente non funziona bene in pratica.
Il significato di -X
attualmente dipende dalla configurazione di ssh.
Su Ubuntu 14.04 LTS, a meno che non modifichi il tuo ssh_config
, non c'è differenza tra -X
e -Y
. "[B] perché troppi programmi attualmente si bloccano 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 -Y
, confidando che i programmi remoti con accesso al display siano amichevoli.
L' -X
opzione 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 dell'estensione X11 SECURITY.
-Y Enables trusted X11 forwarding. Trusted X11 forwardings are not
subjected to the X11 SECURITY extension controls.
È più sicuro da usare -x
-x Disables X11 forwarding.