Bash

“su”,錯誤“X11 連接因身份驗證錯誤而被拒絕”

  • January 22, 2022

作為 root,我正在連接到遠端主機以執行命令。只有“standarduser”具有適當的 id 文件和正確的 .ssh/config,所以我先切換使用者:

su standarduser -c 'ssh -x remotehost ./remotecommand'

該命令工作正常,但儘管我使用了“-x”(禁用 X11-Forwarding)並且在 中禁用了 X11Forwards /etc/ssh/ssh_config,但我仍然收到錯誤消息:

X11 connection rejected because of wrong authentication.

當我以“標準使用者”身份登錄時,我沒有收到錯誤消息。

這很煩人,因為我想將命令集成到 cron 作業文件中。我知道錯誤消息是指對 root 的 .XAuth 文件的錯誤身份驗證,但我什至沒有嘗試通過 X11 連接。

為什麼“ssh -x”沒有禁用 X11 連接並拋出錯誤消息?

更新:該消息僅在我在螢幕中登錄時顯示,當在本地機器本身(沒有螢幕)上使用上述命令時,我沒有收到錯誤消息,所以這也應該適用於 cron .

我還使用相同的命令啟動了相同的命令,-v並且令人驚訝地得到了錯誤消息 FIRST,甚至在來自 SSH 的狀態資訊之前:

root@localhost:~# su standarduser -c 'ssh -x remotehost ./remotecommand'
X11 connection rejected because of wrong authentication.
OpenSSH_6.2p2 Ubuntu-6ubuntu0.1, OpenSSL 1.0.1e 11 Feb 2013

這導致我遇到了問題本身,它不是ssh拋出錯誤消息的,它是su

root@localhost:~# su standarduser -c 'echo Hi'
X11 connection rejected because of wrong authentication.
Hi

為什麼我只在 內得到這個錯誤screen?如何禁用此錯誤消息?

似乎您的根目錄中缺少一些 X11魔術 cookie.Xauthority而您standarduser擁有。這是解決此問題的方法。

短版(感謝@bmaupin

standarduser@localhost:~$ xauth list | grep unix`echo $DISPLAY | cut -c10-12` > /tmp/xauth
standarduser@localhost:~$ sudo su
root@localhost:~$ xauth add `cat /tmp/xauth`

**注意:**檢查反引號!它們不能用引號代替!您需要sudo安裝才能繼續執行第二個命令!

原長版

要解決問題,首先檢測使用哪個顯示編號standarduser

standarduser@localhost:~$ echo $DISPLAY
localhost:21.0

在這種情況下,它是21.0。其次,顯示standardusercookie 列表:

standarduser@localhost:~$ xauth list
localhost/unix:1  MIT-MAGIC-COOKIE-1  51a3801fd7776704575752f09015c61d
localhost/unix:21  MIT-MAGIC-COOKIE-1  0ba2913f8d9df0ee9eda295cad7b104f
localhost/unix:22  MIT-MAGIC-COOKIE-1  22ba6595c270f20f6315c53e27958dfe
localhost/unix:20  MIT-MAGIC-COOKIE-1  267f68b51726a8a381cfc10c91783a13

用於顯示的 cookie21.0是列表中的第二個,並以 . 結尾104f

最後要做的是將這個特定的 cookie 添加到根的.Xauthority. 以 root 身份登錄並執行以下操作:

root@localhost:~$ xauth add localhost/unix:21  MIT-MAGIC-COOKIE-1  0ba2913f8d9df0ee9eda295cad7b104f

X11 connection rejected because of wrong authentication當您在suBash 腳本或screen.

感謝這個人的啟發。

引用自:https://unix.stackexchange.com/questions/110558