如何調試“X11 連線因身份驗證錯誤而被拒絕”

如何調試“X11 連線因身份驗證錯誤而被拒絕”

我透過 SSH 進行 X 轉送時遇到問題。我已經奮鬥了很多年,但似乎沒有人能提供幫助。

我現在採取不同的策略。我想知道如何調試錯誤?

我應該查看哪些日誌,應該設置哪些額外標誌(-v 等)以及我應該尋找什麼?

進一步編輯:

如果我登入 Putty 到伺服器並嘗試xeyes,我會得到:

PuTTY X11 代理程式:嘗試了錯誤的授權協定錯誤:無法開啟顯示:localhost:10.0

如果我xauth generate $DISPLAY得到:

PuTTY X11 代理程式:嘗試了錯誤的授權協定xauth:(argv):1:無法開啟顯示「localhost:10.0」。

答案1

我的解決方案一步一步:

1)使用選項-X遠端主機登入root登入

$ ssh -X[電子郵件受保護]

2)檢查是否存在.Xauthority文件

[root@localhost ~]# ls -al
[root@localhost ~]# vim .Xauthority

3)複製.Xauthority檔案到其他使用者目錄

[root@localhost ~]# cp .Xauthority /home/oracle/
cp:覆蓋“/home/oracle/.Xauthority”? y

4)設定該檔案的權限

[root@localhost ~]# chown oracle:oinstall .Xauthority
[root@localhost ~]# chmod 0600 .Xauthority

5)登入oracle用戶

[root@localhost ~]# su - oracle

6) 在 localhost:10.0 中顯示設置

[oracle@localhost ~]$ echo $DISPLAY
本地主機:10.0
[oracle@localhost ~]$ ls -al

7) 列出現有的 xauth cookies

[oracle@localhost ~]$ xauth 列表
localhost.localdomain/unix:11 MIT-MAGIC-COOKIE-1 310f1b02c1080e73059391c193a1881b
localhost.localdomain/unix:10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb759

8)添加

[oracle@localhost ~]$ xauth 新增 localhost.localdomain/unix:10 MIT-MAGIC-COOKIE-1 41843db100830a2aa352641ac47bb75

9) 測試

[oracle@localhost ~]$ xclock

希望他們服務! @wcaraza

答案2

確保 SSH 伺服器已xauth安裝該工具,並且您的~/.Xauthority檔案可寫入。 (不存在也可以,只要xauth能創造就可以。)

檢查 xauth 資料是否正在更新:

server$ xauth list

嘗試手動新增虛擬 xauth 資料(再次在 SSH 伺服器上),並查看是否xauth有任何問題(例如,無法建立鎖定檔案或修改 Xauthority 檔案本身):

server$ xauth add localhost:123 MIT-MAGIC-COOKIE-1 d7e2e4a8c5aa4430bfcc2abb436940d2

如果需要,請在 下重新運行strace

LogLevel DEBUG2透過在伺服器配置 ( /etc/ssh/sshd_config) 中進行設置,或直接在調試模式下啟動 sshd,以調試模式運行 SSH 服務:

server$ sshd -rddp 12234

(在此範例中,12234是您需要連接的臨時 SSH 連接埠。任何空閒連接埠都可以。)

答案3

它正在發揮作用,它正在發揮作用。哈哈。

最後。

在發現這不是系統之後,通過添加一個測試用戶(x 轉發“開箱即用”),我想我應該開始複製 .bash* 啟動文件以將“損壞的”用戶處女化。

所有檔案都沒有不同,因此接下來我刪除了使用者 .ssh 目錄。當我 ssh 登入時,它抱怨“伺服器拒絕我們的密鑰”,但我可以使用密碼登入。登入後,我可以完美轉發。

我現在將嘗試再次設定密鑰,看看是否也能正常工作。然後就會恢復正常。

答案4

rm ~/.Xauth*然後重新連線。

這對我有用。了解更多細節

相關內容