ssh连接.由于身份验证错误,X11连接被拒绝

尝试通过ssh访问我实验室中的集群并且它可以正常工作.但后来我无能为力:

user@users:~> nautilus
X11 connection rejected because of wrong authentication.
Could not parse arguments: Cannot open display

要么

user@users:~> gedit
X11 connection rejected because of wrong authentication.

(gedit:151222): Gtk-WARNING **: cannot open display: localhost:11.0

它一直工作到今天……我不知道如何检查是否有变化.我没有这台机器的root密码,有什么我可以做的吗?

我已经阅读了很多关于这个错误的事情,比如这个但没有解决……

编辑:

本地操作系统是Ubuntu 16,服务器是OpenSuse.
我这样连接:

ssh -XY -p22 user@172.17.10.15

编辑2:

user@users:~> env
MODULE_VERSION_STACK=3.1.6
LESSKEY=/etc/lesskey.bin
NNTPSERVER=news
INFODIR=/usr/local/info:/usr/share/info:/usr/info
MANPATH=/usr/local/man:/usr/share/man
HOSTNAME=users
XKEYSYMDB=/usr/share/X11/XKeysymDB
HOST=users
TERM=xterm-256color
SHELL=/bin/bash
PROFILEREAD=true
HISTSIZE=1000
SSH_CLIENT=10.44.0.1 49729 22
MORE=-sl
SSH_TTY=/dev/pts/2
JRE_HOME=/usr/lib64/jvm/jre
USER=user
LS_COLORS=no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.lzma=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:
LD_LIBRARY_PATH=/usr/local/cuda-5.5/lib:/usr/local/cuda-5.5/lib64:
XNLSPATH=/usr/share/X11/nls
ENV=/etc/bash.bashrc
HOSTTYPE=x86_64
FROM_HEADER=
MSM_PRODUCT=MSM
PAGER=less
CSHEDIT=emacs
XDG_CONFIG_DIRS=/etc/xdg
MINICOM=-c on
MODULE_VERSION=3.1.6
MAIL=/var/mail/user
PATH=/usr/local/cuda-5.5/bin:/home/user/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/usr/lib64/jvm/jre/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin
CPU=x86_64
JAVA_BINDIR=/usr/lib64/jvm/jre/bin
INPUTRC=/home/user/.inputrc
PWD=/home/user
JAVA_HOME=/usr/lib64/jvm/jre
LANG=en_US.UTF-8
PYTHONSTARTUP=/etc/pythonstart
MODULEPATH=/usr/share/modules:/usr/share/modules/modulefiles
LOADEDMODULES=
QT_SYSTEM_DIR=/usr/share/desktop-data
SHLVL=1
HOME=/home/user
LESS_ADVANCED_PREPROCESSOR=no
OSTYPE=linux
LS_OPTIONS=-N --color=tty -T 0
XCURSOR_THEME=DMZ
MSM_HOME=/usr/local/MegaRAID Storage Manager
WINDOWMANAGER=/usr/bin/gnome
G_FILENAME_ENCODING=@locale,UTF-8,ISO-8859-15,CP1252
LESS=-M -I
MACHTYPE=x86_64-suse-linux
LOGNAME=user
XDG_DATA_DIRS=/usr/share:/etc/opt/kde3/share:/opt/kde3/share
SSH_CONNECTION=172.17.10.15 22
MODULESHOME=/usr/share/modules
LESSOPEN=lessopen.sh %s
INFOPATH=/usr/local/info:/usr/share/info:/usr/info
DISPLAY=localhost:12.0
XAUTHLOCALHOSTNAME=users
LESSCLOSE=lessclose.sh %s %s
G_BROKEN_FILENAMES=1
JAVA_ROOT=/usr/lib64/jvm/jre
COLORTERM=1
_=/usr/bin/env
最佳答案
Xauthority Mini如何

在运行X11显示服务器的GNU / Linux系统上,文件〜/ .Xauthority存储用于授权连接到显示器的身份验证cookie或加密密钥.在大多数情况下,身份验证机制是对称cookie,称为Magic Cookie.服务器和客户端使用相同的cookie.

每个X11身份验证cookie都由单个系统身份验证用户控制.由于认证cookie存储为纯文本安全令牌,因此〜/ .Xauthority文件的权限应仅为所有者的rw,为八进制格式的600.但是,不强制授权文件的权限.

用户可以使用xauth程序列出,导出,创建或删除身份验证cookie.以下命令将为DISPLAY 32创建一个authoratization cookie.

xauth add localhost:32 - `mcookie`

当使用带有ssh的X11转发时,通常不需要手动创建和操作cookie,因为ssh在远程计算机上启动X11代理并自动在本地显示器上生成授权cookie.但是,对于某些配置,可能需要手动创建授权cookie并将其复制到本地计算机.

这可以在ssh会话中完成,然后使用scp复制cookie.

ssh到远程机器:

ssh -XY user@remote

检查当前X11显示器是否存在授权cookie

echo $DISPLAY
xauth list

如果没有名为$DISPLAY的环境变量,则X11代理无法正常启动.重要的是要注意,DISPLAY 0通常在本地登录用户,并且仅在通过xinit本地启动xserver时才运行.为了使X11转发通过ssh运行,不需要本地启动的X11服务器.

如果设置了$DISPLAY环境变量,但该显示编号没有相应的授权cookie,则可以创建一个:

xauth add $DISPLAY - `mcookie`

并验证现在有一个cookie:

xauth list

您可以复制该cookie并将其合并到本地计算机中:

user@remote> xauth nextract ~/xcookie $DISPLAY
user@remote> exit
user@local> scp user@remote:~/xcookie ~/xcookie
user@local> xauth nmerge ~/xcookie

然后验证cookie是否已安装:

user@local> xauth list

试试你的X11转发ssh连接.

关于〜/ .Xauthority的注释

〜/ .Xauthority是一个二进制文件,其中包含用户可以访问的每个显示的所有授权信息.每个记录由两个字节0x0100分隔.每个字段前面都有字段的字节数的hexidemical计数.所有文本都以十六进制ASCII编码.下表是MIT MAGIC COOKIE授权最常见配置的基本结构:

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 0100              0004        61616161           0002           3435                    0012          4d49542d4d414749432d434f4f4b49452d31   0010          c0bdd1c539be89a2090f1bbb6b414c2c 
----------------- ----------- ------------------ ------------  ----------------------  -------------  -------------------------------------- ------------ ---------------------------------------
 start-of-record   0xNumBytes  0xASCII Hostname   0xNumBytes     0xASCII Display Num     0xNumBytes    0xASCII Auth Type                      0xNumBytes    0xkey
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

顶行可以通过xauth nlist命令从〜/ .Xauthority文件中检索.当然,您的授权文件将包含与我的示例不同的信息.

如果安全扩展与X11服务器一起使用,则每个授权行都有多个配置选项,包括每个cookie的时间限制授权.

转载注明原文:ssh连接.由于身份验证错误,X11连接被拒绝 - 代码日志