xauth 未建立 .Xauthority 文件

xauth 未建立 .Xauthority 文件

當我 ssh 進入無頭 Linux Mint 17 系統時,它不會建立更新/建立 .Xauthority 檔案。

此外,當我運行時,xauth我得到回應:

marty@N40L ~ $ xauth
xauth:  file /home/marty/.Xauthority does not exist
Using authority file /home/marty/.Xauthority
xauth>exit
marty@N40L ~ $ xauth
xauth:  file /home/marty/.Xauthority does not exist
Using authority file /home/marty/.Xauthority
xauth>

它不會創建該文件。

編輯:

當我連接監視器,然後在本地登入時,會建立該文件,但當我嘗試新增條目時(因為我的 SSH 不為我執行此操作):

marty@N40L ~ $ xauth list
N40L/unix:0  MIT-MAGIC-COOKIE-1  34eee3b15cdb281021502d40dfba1cf2
localhost.localdomain/unix:0  MIT-MAGIC-COOKIE-1  34eee3b15cdb281021502d40dfba1cf2
marty@N40L ~ $ ls -d .X*
-rw------- 1 marty marty 115 Sep  3 12:03 .Xauthority
marty@N40L ~ $ xauth generate $DISPLAY .
PuTTY X11 proxy: wrong authorisation protocol attemptedxauth: (argv):1:  unable to open display "localhost:10.0".

順便說一句,執行 anetstat --listen顯示連接埠偵聽:

tcp 0 0 localhost:6010 *:* LISTEN

啊啊,更多資訊。我註銷了伺服器上的 X 會話,現在 .Xauthority 檔案已經消失。看來該文件僅在本地登入時才存在。誰能告訴我為什麼,或者我該如何解決這個問題?

新發展:

我在系統上建立了一個名為「test」的原始使用者。然後我登錄,沒有任何其他命令,運行 xeyes。哪個有效!所以只有使用者「marty」不能轉發。如何將設定從 test 複製到 marty?

答案1

只是報告一下,我確實遇到了類似的問題。但就我而言,我只是遵循那些步驟:

請依照以下步驟建立$HOME/.Xauthority文件。

以使用者身分登入並確認您位於使用者的主目錄中。

# Rename the existing .Xauthority file by running the following command
mv .Xauthority old.Xauthority 

# xauth with complain unless ~/.Xauthority exists
touch ~/.Xauthority

# only this one key is needed for X11 over SSH 
xauth generate :0 . trusted 

# generate our own key, xauth requires 128 bit hex encoding
xauth add ${HOST}:0 . $(xxd -l 16 -p /dev/urandom)

# To view a listing of the .Xauthority file, enter the following 
xauth list 

從那時起,文件就不再有問題了.Xauthority

感謝並致謝斯里尼瓦桑

答案2

在 root 權限下開啟/etc/ssh/sshd_config並取消註解以下行(如果有註解):

X11轉發 是

X11顯示偏移 10

X11UseLocalhost 是

然後登出並-X使用 中的標誌再次登入ssh。您不必設定或取消設定DISPLAY環境變數。

答案3

只是為了補充優秀回答

我曾經遇到過完全相同的問題,因為我的主目錄已經 100% 滿了。連接後,ssh創建了一個空值~/.Xauthority,並且無法向其中寫入任何單一條目(因此xauth list始終會產生空輸出)。

因此,我建議您始終檢查可用空間(例如df -h:)並驗證是否xauth generate確實xauth add產生了任何影響(xauth list)。

答案4

.ssh目錄移開使 X 轉發對我有用。

透過排除的過程,我在~/.ssh中找到了一個名為“rc”的文件,其中包含:

echo "Wecome to $(hostname), $(whoami)"

我從來沒有創造過這個,也不知道它來自哪裡。刪除它解決了問題,並且我的authorized_keysknown_hosts和密鑰檔案都可以完好無損。

相關內容