嵌套 ssh 上“警告:不受信任的 X11 转发设置失败”

嵌套 ssh 上“警告:不受信任的 X11 转发设置失败”

我有一个从糟糕的万维网通过 ssh 访问的网关。没问题,我得到:

remote ~$ ssh -X ingo@gateway
Debian GNU/Linux 10 (buster)
0:ingo@gateway ~$

现在我管理其他主机,例如文件服务器:

0:ingo@gateway ~$ ssh -X ingo@fileserver
Warning: untrusted X11 forwarding setup failed: xauth key data not generated
Debian GNU/Linux 10 (buster)
0:ingo@fileserver~$

我收到那个警告。

但是,如果我从本地网络上的管理主机直接 ssh 到文件服务器,它就可以正常工作而不会出现警告。我已经用其他登录验证了这一点。我仅在从 ssh 进行 ssh 时收到警告。

为什么我得到
警告:不受信任的 X11 转发设置失败:未生成 xauth 密钥数据
仅在嵌套 ssh 登录上?

如何避免此警告并成功使用更安全的不受信任的 X11 转发?

不,我不想-Y在 ssh 上使用不太安全的选项来进行可信 X11 转发,而不是使用已使用的-X选项。

答案1

当您与 X11 服务器的唯一连接是不受信任的,您无法进一步转发。

不可信X11转发的工作原理是ssh客户端连接到本地显示,并使用xauth generate $DISPLAY . untrusted命令生成一个不受信任的密钥/cookie。

但为此,该xauth命令需要SECURITY在显示屏上显示扩展,与大多数扩展一样,当客户端xauth使用不受信任的 cookie 进行身份验证时,扩展会被隐藏和/或禁用。

您可以通过以下方式轻松检查:

$ touch /tmp/junk1 /tmp/junk2
$ chmod 600 /tmp/junk*
$ xauth -f /tmp/junk1 generate :0 . untrusted
$ XAUTHORITY=/tmp/junk1 oclock
   # get a square oclock because the Shape extension is disabled
$ XAUTHORITY=/tmp/junk1 xdpyinfo | grep -A2 extensions
number of extensions:    2
    BIG-REQUESTS
    XC-MISC
   # vs 28 or so on a trusted display
$ XAUTHORITY=/tmp/junk1 xauth -f /tmp/junk2 generate :0 . untrusted
xauth: (argv):1:  couldn't query Security extension on display ":0"

后一步将导致您在 ssh 中收到警告。

所以至少第一个X11转发应该是可信的,否则不行。


或者,您应该“跳过”中间主机,这将执行单个 X11 转发:

ssh -X -o ForwardX11Trusted=no -J ingo@gateway ingo@fileserver

请注意,显式的ForwardX11Trusted=no,因为在 Debian 上,-X-Y选项是等效的,你会得到一个值得信赖的无论您使用哪一种,默认情况下都会进行 X11 转发。

相关内容