嵌套 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 轉送。

相關內容