
我透過 ssh 連接到遠端計算機,並且 xforwarding 工作正常...但是一旦我“sudo su -”或“sudo su user2”,它就不再 Xforwards 任何給我錯誤的東西:
X11 connection rejected because of wrong authentication.
xterm Xt error: Can't open display: localhost:10.0
有任何想法嗎?
謝謝
答案1
- 在您的用戶端中啟用 X-11 轉發
- 以普通用戶身分登入
echo $DISPLAY
取得關聯的顯示xauth list
,找到與 #3 中找到的內容相對應的顯示編號並複製它- 須藤到 root
xauth add <paste in what you copied from #4>
- 現在您可以以 root 身分執行命令,並且能夠設定 X11 轉送連接
答案2
在您之前sudo
,請執行以下操作:
$ xauth extract /tmp/xauthstuff $DISPLAY
之後sudo
,執行以下操作:
# xauth merge /tmp/xauthstuff
這對你有用嗎?
PS記得rm /tmp/xauthstuff
事後
答案3
我無權存取 root 帳戶來執行上述任何操作,因此這是我使用的解決方法。
首先,像平常一樣透過 ssh 連接到您的帳戶並測試一切是否正常。
ssh -Y <you>@<your_server>
我通常只是啟動 XTerm 來確保連線。如果一切順利,請複製主目錄中的 .XAuthority 檔案<you>
並將其放入公共目錄中。
cp ~/.Xauthority /tmp/tempXAuth
確保對公共目錄中的該檔案執行 chmod 777 操作,以便 sudo 帳戶可以在後續步驟中使用它。
chmod 777 /tmp/tempXAuth
現在 sudo 到您需要執行工作的用戶
sudo su - <other_user>
完成後<other_user>
,備份現有的 .Xauthority,然後複製「好的」檔案。
cp ~/.Xauthority ~/.Xauthority.bak
cp /tmp/tempXAuth ~/.Xauthority
您應該能夠運行任何 X 程式並讓它們通過您當前的 XServer 會話進行身份驗證。
答案4
作為您通常登入的用戶,輸入:
cd
sudo cp .Xauthority /root/
然後你可以使用以下命令切換到root:
sudo su