当我通过 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
答案4
移开.ssh
目录使得 X 转发对我来说可以工作。
通过排除过程,我在 ~/.ssh 中找到一个名为“rc”的文件,其中包含:
echo "Wecome to $(hostname), $(whoami)"
我从未创建过这个,也不知道它从何而来。删除它解决了这个问题,我的authorized_keys
、known_hosts
和 key 文件都可以保持完整。