Qual é a diferença entre 'ssh -Y' (redirecionamento X11 confiável) e 'ssh -X' (encaminhamento X11 não confiável)?

97

Qual é a diferença entre ssh -Y (encaminhamento X11 confiável) e ssh -X (encaminhamento X11 não confiável)? Tanto quanto eu entendi, tem algo a ver com segurança, mas eu não entendi a diferença e quando usar qual.

    
por Martin Ueding 16.04.2011 / 21:42

4 respostas

74

Ambas as opções têm algo a ver com o encaminhamento do X11. Isso significa que, se você ativar isso, poderá usar um cliente gráfico por meio de sua sessão SSH (por exemplo, usar o Firefox ou outra coisa).

Se você usar ssh -X remotemachine , a máquina remota será tratada como um cliente não confiável. Portanto, seu cliente local envia um comando para a máquina remota e recebe a saída gráfica. Se o seu comando violar algumas configurações de segurança, você receberá um erro.

Mas se você usar ssh -Y remotemachine , a máquina remota será tratada como cliente confiável. Esta última opção pode abrir problemas de segurança. Porque outro cliente gráfico (X11) poderia farejar dados da máquina remota (fazer capturas de tela, fazer keylogging e outras coisas desagradáveis) e é até mesmo possível alterar esses dados.

Se você quiser saber mais sobre essas coisas, sugiro que leia a página de manual do Xsecurity ou a Especificação da extensão X Security . Além disso, você pode verificar as opções ForwardX11 e ForwardX11Trusted no seu /etc/ssh/ssh_config .

    
por qbi 16.04.2011 / 22:38
17

Não use nenhum quando não precisar executar programas X11 remotamente; use -X quando você fizer isso; e, hipoteticamente, use -Y se um programa X11 de seu interesse funcionar melhor com -Y do que com -X. Mas atualmente (Ubuntu 15.10), -X é idêntico a -Y, a menos que você edite ssh_config para dizer ForwardX11Trusted no . -X foi originalmente destinado a permitir a extensão X Security dos anos 90, mas isso é antigo e inflexível, e trava alguns programas, sendo ignorado por padrão.

Ambos ssh -Y e -X permitem executar um programa X11 em uma máquina remota, com suas janelas aparecendo no monitor X local. A questão é o que o programa pode fazer nas janelas de outros programas e no próprio servidor X.

local$ ssh -X remote
remote$ xlogo
# Runs xlogo on remote, but the logo pops up on the local screen.
O encaminhamento X11 confiável > está ativado por -Y . Esse é o comportamento histórico. Um programa com acesso ao monitor é confiável com acesso à exibição inteira . Pode captura de tela, keylog e injetar entrada em todas as janelas de outros programas. E pode usar todas as extensões de servidor X, incluindo aquelas como gráficos acelerados, que são exposições de segurança. O que é bom para funcionar sem problemas, mas ruim para segurança. Você está confiando que os programas remotos sejam tão seguros quanto seus programas locais.

O redirecionamento X11 do Unpusted tenta redirecionar os programas remotos para que eles acessem apenas as janelas do Windows XP, usando apenas as partes do X que são relativamente seguras. O que parece bom, mas atualmente não funciona bem na prática.

O significado de -X depende da sua configuração ssh.

No Ubuntu 14.04 LTS, a menos que você edite seu ssh_config , não há diferença entre -X e -Y . "[B] porque muitos programas atualmente falham no modo [não confiável]."

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 , -X ativará o encaminhamento não confiável . Caso contrário, -X é tratado da mesma forma que -Y , confiando que programas remotos com acesso de exibição são amigáveis.

    
por Mitchell 30.03.2016 / 18:08
1

Sim. -Y é para o confiável encaminhamento X11, enquanto -X é para o encaminhamento não confiável do X11. O encaminhamento X11 permite apenas que você use aplicativos X11 (ou seja, gráficos) em uma sessão SSH.

Não sei qual é a diferença significativa entre conexões X11 confiáveis e não confiáveis, mas tenho certeza que isso tem a ver com a configuração do lado do servidor (por exemplo, ssh-config, sshd-config, etc.). Verifique com seu servidor ou administrador de rede sobre qual sinalizador usar.

    
por Tyler K. 16.04.2011 / 22:00
1

A opção -X habilita o encaminhamento do 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.

A opção -Y , correspondente à diretiva ForwardX11Trusted em ssh_config (5), é ainda menos segura porque remove os controles de extensão X11 SECURITY.

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

É mais seguro usar -x

-x   Disables X11 forwarding.
    
O
por Ortomala Lokni 10.01.2016 / 02:57