ssh,使用-X还是-Y更好?

ssh,使用-X还是-Y更好?

简单的问题:为了安全使用更安全ssh -X还是ssh -Y?据我所知 ssh -Y 是 X11Trusted,因此不再进行任何控制,因此出于安全原因最好使用 -X 。你觉得呢?我通常使用 -Y,因为如果我使用 -X 选项,当我在目标计算机上执行 ssh 时,我会看到此消息。

Warning: untrusted X11 forwarding setup failed: xauth key data not generated

我通过局域网连接一台机器。

答案1

我自己回答。也许这个ssh -X选择更安全。因为需要两种类型的身份验证:ssh(密码、kerberos 或公钥)和 x11(xauth、xhost)身份验证。当我们使用ssh -Y所谓的“受信任”时,我们信任主机并绕过 X11 身份验证,因此我们不需要使用命令 xhost。所以在我看来ssh -X更安全,只有一个问题:使用最新版本的 ssh 似乎给出了我所做的这个问题

\ssh -vvv  -X myhost

我得到了这两个错误

Warning: untrusted X11 forwarding setup failed: xauth key data not generated

debug2: client_x11_get_proto: xauth command: /usr/bin/xauth -f /tmp/ssh-KYHfkmGN25fa/xauthfile generate :0.0 MIT-MAGIC-COOKIE-1 untrusted timeout 1260 2>/dev/null

当我尝试直接运行 xauth 命令时出现此错误

/usr/bin/xauth -f /tmp/ssh-KYHfkmGN25fa/xauthfile generate :0.0 MIT-MAGIC-COOKIE-1 untrusted timeout 1260 
/usr/bin/xauth:  error in locking authority file /tmp/ssh-KYHfkmGN25fa/xauthfile

解决方法:编辑 ssh_config 并启用这些行

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted yes

ssh -X 现在工作正常,但只有一个问题我尝试禁用访问

xhost -

并且运行 ssh -X 仍然接受主机!所以我认为 ForwardX11Trusted yes 覆盖 ForwardX11 yes

编辑 ssh_config

Host *
    ForwardAgent yes
    ForwardX11 yes
    ForwardX11Trusted no

和 ssh -X 不起作用。所以问题仍然悬而未决。

答案2

ssh 的-X选项启用 X11 转发,并-Y启用可信 X11 转发。后者不受SECURITY扩展的安全控制。

理想情况下,您可以用来-X提高安全性。但是,如果您使用 Debian 版本的 OpenSSH,该-X选项会在手册页中包含以下内容:

Debian 特定:默认情况下,X11 转发不受 X11 SECURITY 扩展限制,因为目前有太多程序在此模式下崩溃。将 ForwardX11Trusted 选项设置为“no”以恢复上游行为。根据客户端的改进,这可能会在未来发生变化。

因此,禁用可信转发并不是一个实际的选择,如果您希望您的程序真正运行,则需要使用可信转发。在 Debian 上,-X这样做;-Y在所有系统上都这样做。

相关内容