我有一个从糟糕的万维网进入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发出时,我才会收到警告。
为什么我要获得Warning:不受信任的X11转发设置失败: xauth键数据不能只在嵌套的ssh登录时生成?
如何避免此警告并成功地使用更安全的不受信任的X11转发?
不,我不想在ssh上使用不太安全的-Y
选项来进行可信的X11转发,而不是使用-X
选项。
发布于 2020-04-03 21:36:52
当您与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转发。
https://unix.stackexchange.com/questions/577759
复制相似问题