Qual é a diferença entre ssh -Y
(encaminhamento X11 confiável) e ssh -X
(encaminhamento X11 não confiável)? Até onde eu entendi, isso tem algo a ver com segurança, mas eu não entendi a diferença e quando usar qual.
Qual é a diferença entre ssh -Y
(encaminhamento X11 confiável) e ssh -X
(encaminhamento X11 não confiável)? Até onde eu entendi, isso tem algo a ver com segurança, mas eu não entendi a diferença e quando usar qual.
Respostas:
Ambas as opções têm algo a ver com o encaminhamento do X11. Isso significa que, se você habilitar isso, poderá usar um cliente gráfico na sua sessão SSH (por exemplo, usar o Firefox ou outra coisa).
Se você usar ssh -X remotemachine
a máquina remota, será tratado 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á tratado como um cliente confiável. Esta última opção pode abrir problemas de segurança. Como outros clientes gráficos (X11) podem farejar dados da máquina remota (fazer capturas de tela, registrar keylogging e outras coisas desagradáveis) e é ainda possível alterar esses dados.
Se você quiser saber mais sobre essas coisas, sugiro ler a página de manual do Xsecurity ou a especificação de extensão do X Security . Além disso, você pode verificar as opções ForwardX11
e ForwardX11Trusted
no seu /etc/ssh/ssh_config
.
-X
é impossível para outros clientes farejar ou alterar dados?
-Y
vez de -X
em geral?
-Y
) e o único caso em que entendi isso pode ser útil é quando o controle de segurança do lado do servidor não é implementado / não é compatível. Também li que o encaminhamento do X11 geralmente é uma ferramenta poderosa e perigosa que deve ser tratada como tal.
Use nem quando não precisar executar programas X11 remotamente; use -X
quando você faz; e hipoteticamente use -Y
se um programa X11 com o qual você se preocupa 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 planejado para habilitar a extensão X Security da década de 90, mas é antiga e inflexível e trava alguns programas, sendo ignorada por padrão.
O ssh -Y
e -X
permite 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 confiável do X11 é ativado por -Y
. Esse é o comportamento histórico. Um programa com acesso à tela é confiável com acesso à tela inteira . Pode capturar imagens, 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 a segurança. Você está confiando que os programas remotos são tão seguros quanto os programas locais.
O encaminhamento não confiável do X11 tenta restringir os programas remotos a acessar apenas suas próprias janelas e a usar apenas as partes do X que são relativamente seguras. Parece bom, mas atualmente não funciona bem na prática.
O significado de -X
atualmente depende da sua configuração ssh.
No Ubuntu 14.04 LTS, a menos que você edite o seu ssh_config
, não há diferença entre -X
e -Y
. "[B] porque muitos programas atualmente travam 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
habilita o encaminhamento não confiável . Caso contrário, -X
é tratado da mesma forma que -Y
, confiando que os programas remotos com acesso a exibição são amigáveis.
A -X
opção permite 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.