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".

顺便说一下,做一个netstat --listen显示端口监听:

tcp 0 0 localhost:6010 *:* LISTEN

啊,更多信息。我退出了服务器上的 X 会话,现在 .Xauthority 文件消失了。似乎该文件仅在本地登录时才存在。有人能告诉我原因吗,或者我该如何解决这个问题?

新进展:

我在系统上创建了一个名为“test”的 virgin 用户。然后我登录,无需任何其他命令,运行 xeyes。成功了!所以只有用户“marty”不能 xforward。我如何将设置从 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和 key 文件都可以保持完整。

相关内容