xauth不创建.Xauthority文件


28

当我切换到无头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

AGH,更多信息。我注销了服务器上的X会话,现在.Xauthority文件已消失。似乎该文件仅在本地登录时才存在。谁能告诉我原因,或如何解决?

新发展:

我在名为“ test”的系统上创建了一个纯用户。然后我登录,并且没有任何其他命令,便运行了xeyes。哪个有效!因此,只有用户“ marty”无法进行xforward。如何将设置从测试复制到marty?


您是否告诉它创建文件?ssh -X启用X11转发。
user1686'9

是的,我在Windows上使用Putty,设置了转发功能(可以连接到另一台Mint服务器)。但是该文件未创建,所以我想我会手动添加它,xauth也不会手动创建它。
wkdmarty 2014年

本地Xwindows创建.Xauthority文件,但Putty SSH会话则不会。即使它显示它正在侦听连接。
wkdmarty 2014年

Answers:


34

仅作报告,我确实有类似的问题。但就我而言,我只需遵循以下步骤

请按照以下步骤创建$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从那以后,文件不再有问题。

感谢和感谢srinivasan


1
以我为例,使用此[ prefetch.net/blog/index.php/2011/11/01/…线程,我有一个环境变量XAUTHORITY指向其他地方(一个粗心的错误),我能够发现此问题并解决错误。使用strace xauth,它指出了变量中指定的错误路径。我还应该补充一点,就是我得到了锁错误,例如
Cybex

1
就我而言,我只需要执行步骤1到3。步骤4和5实际上使它无法工作。
理查德·阿约特

我必须在执行xauth generate :0 . trusted每个命令后user才能打开显示为root。我可以解决吗?
Timo

xhost +帮助以形式打开x-apps root
Timo

7
步骤3给了我错误:xauth: (argv):1: unable to open display ":0".
simpleuser

4

只是为了补充出色的答案

我曾经遇到过完全相同的问题,因为我的主目录已100%充满。连接后,ssh创建了一个空~/.Xauthority条目,并且无法向其写入任何单个条目(因此xauth list始终产生一个空输出)。

因此,我建议一个始终检查可用空间(例如:df -h)并验证xauth generatexauth add的确有任何影响(xauth list)。


1

在发现它不是系统之后,通过添加测试用户(x转发可以“开箱即用”),我认为我将开始复制.bash *启动文件来对“破碎”的用户进行虚拟化。

这些文件没有什么不同,因此接下来我删除了用户.ssh目录。当我ssh进入时,它抱怨着“服务器拒绝了我们的密钥”,但是我可以使用密码登录。登录后,我可以完美转发。

现在,我将尝试再次设置密钥,看看是否也可以正常工作。然后它将恢复正常。


1

移开.ssh目录使X转发对我有用。

通过消除过程,我在〜/ .ssh中找到了一个名为“ rc”的文件,其中包含:

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

我从未创建过此文件,也不知道它的来源。取出固定的问题,而我authorized_keysknown_hosts和密钥文件都可以保持不变。


1

在root特权下,打开/etc/ssh/sshd_config并取消注释以下行(如果有注释):

X11转发是

X11DisplayOffset 10

X11UseLocalhost是

然后注销并使用中的-X标志再次登录ssh。您不必设置或取消设置DISPLAY环境变量。


0

我在技术上是姐妹节点的两台服务器上遇到了相同的问题。我不知道到底有什么不同,所以我的尾巴很痛。原来/ home目录已满,所以.Xauthority文件无法正确填充。一旦找到占用过多空间的文件并清除它们,就可以正确创建新的.Xauthority文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.