简单的问题:为了安全使用更安全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
在所有系统上都这样做。