AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 412065
Accepted
Dadep
Dadep
Asked: 2017-12-21 07:47:11 +0800 CST2017-12-21 07:47:11 +0800 CST 2017-12-21 07:47:11 +0800 CST

ssh 连接。X11 连接因身份验证错误而被拒绝

  • 772

在尝试通过 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密码,有什么办法吗?

我已经阅读了很多有关此错误的信息,例如this,但没有解决...

编辑 :

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

ssh -XY -p22 [email protected]

编辑 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
ssh x11
  • 3 3 个回答
  • 53525 Views

3 个回答

  • Voted
  1. Best Answer
    RubberStamp
    2017-12-24T07:35:20+08:002017-12-24T07:35:20+08:00

    Xauthority Mini 如何

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

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

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

    xauth add localhost:32 - `mcookie`
    

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

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

    ssh进入远程机器:

    ssh -XY user@remote
    

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

    echo $DISPLAY
    xauth list
    

    如果没有命名环境变量$DISPLAY,则 X11 代理没有正确启动。需要注意的DISPLAY 0是,它通常是本地登录的用户,并且只有在 xserver 已通过本地启动时才会运行xinit。不需要本地启动的 X11 服务器就可以让 X11 转发通过ssh.

    如果$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。每个字段前面都有字段字节数的十六进制计数。所有文本都以十六进制 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
    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    

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

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

    • 31
  2. Heath Raftery
    2022-07-14T19:15:41+08:002022-07-14T19:15:41+08:00

    正如这里所解释的,我想指出,现在出现类似症状的原因非常不同,以拯救人们陷入长长的xauth兔子洞。

    用 Snap 安装的任何东西都不起作用。所以xeyes并且xclock可能会起作用,但是在 Ubuntu 上安装chromium-browser或新安装firefox不会。

    解决方法很简单:export XAUTHORITY=$HOME/.Xauthority在运行远程 X11 应用程序之前。

    • 参考 1:https ://forum.snapcraft.io/t/x11-forwarding-using-ssh/2381
    • 参考 2:https ://forum.snapcraft.io/t/x11-connection-rejected-because-of-wrong-authentication/16528/3
    • 3
  3. Fred
    2021-11-11T10:31:32+08:002021-11-11T10:31:32+08:00

    我在尝试安装真正想要使用 GUI 的软件时遇到了这个问题(即,我想不出没有 GUI 来安装它的方法)。我的问题是我试图运行可执行文件sudo并且sudo身份验证错误。

    提示:使用xhost命令

    该命令xhost很有用,因为它会告诉您您的用户是否具有 X11 连接访问权限

    就我而言,我的用户可以访问:

    fred@machinename $ xhost
    access control disabled, clients can connect from any host
    SI:localuser:fred
    

    但使用sudo我没有访问权限:

    fred@machinename $ sudo xhost
    X11 connection rejected because of wrong authentication.
    xhost:  unable to open display "localhost:10.0"
    

    一旦我弄清楚了这一点,它就解释了为什么运行的程序sudo会出现身份验证错误。

    我的解决方案

    为了解决这个问题,我做了以下事情:

    获取价值$DISPLAY

    fred@machinename $ echo $DISPLAY
    localhost:10.0
    

    获取与 中的数字匹配的魔法 cookie 值$DISPLAY,在我的情况下,这是 的值10:

    fred@machinename $ xauth list
    machinename:4  MIT-MAGIC-COOKIE-1  e76c006944a28a5dbd3c54a0deadbeef
    machinename/unix:4  MIT-MAGIC-COOKIE-1  e76c006944a28a5dbd3c54a0deadbeef
    machinename/unix:10  MIT-MAGIC-COOKIE-1  cdead42e9b4c159505c0c830deadbeef
    

    将用户更改为root:

    fred@machinename $ sudo su -
    

    向 Xauthority 添加魔法 cookie 值:

    root@machinename # xauth add gcashvapp511u/unix:10  MIT-MAGIC-COOKIE-1  cdead42e9b4c159505c0c830deadbeef
    

    验证它是否被正确添加:

    root@machinename # cat ~/.Xauthority 
    machinename10MIT-MAGIC-COOKIE-1���.�L���0[���[root@machinename ~]# export DISPLAY=localhost:10.0
    

    验证它是否正常工作:

    root@machinename # xhost
    access control disabled, clients can connect from any host
    SI:localuser:fred
    

    然后以 root 身份执行我的程序,它终于能够运行它迫切想要安装的 GUI。

    • 2

相关问题

  • 为什么 ssh 实用程序被视为 pty?

  • Auto-SSH 手动工作,但不在后台工作

  • 远程运行 X 应用程序,在远程主机上运行 GUI [关闭]

  • rsync 端口 22 和 873 使用

  • SCP突然中止:管道损坏,消息验证码不正确

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    JSON数组使用jq来bash变量

    • 4 个回答
  • Marko Smith

    日期可以为 GMT 时区格式化当前时间吗?[复制]

    • 2 个回答
  • Marko Smith

    bash + 通过 bash 脚本从文件中读取变量和值

    • 4 个回答
  • Marko Smith

    如何复制目录并在同一命令中重命名它?

    • 4 个回答
  • Marko Smith

    ssh 连接。X11 连接因身份验证错误而被拒绝

    • 3 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Marko Smith

    systemctl 命令在 RHEL 6 中不起作用

    • 3 个回答
  • Marko Smith

    rsync 端口 22 和 873 使用

    • 2 个回答
  • Marko Smith

    以 100% 的利用率捕捉 /dev/loop -- 没有可用空间

    • 1 个回答
  • Marko Smith

    jq 打印子对象中所有的键和值

    • 2 个回答
  • Martin Hope
    EHerman JSON数组使用jq来bash变量 2017-12-31 14:50:58 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Drux 日期可以为 GMT 时区格式化当前时间吗?[复制] 2017-12-26 11:35:07 +0800 CST
  • Martin Hope
    AllisonC 如何复制目录并在同一命令中重命名它? 2017-12-22 05:28:06 +0800 CST
  • Martin Hope
    Steve “root”用户的文件权限如何工作? 2017-12-22 02:46:01 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST
  • Martin Hope
    Cbhihe 将默认编辑器更改为 vim for _ sudo systemctl edit [unit-file] _ 2017-12-03 10:11:38 +0800 CST
  • Martin Hope
    showkey 如何下载软件包而不是使用 apt-get 命令安装它? 2017-12-03 02:15:02 +0800 CST
  • Martin Hope
    youxiao 为什么目录 /home、/usr、/var 等都具有相同的 inode 编号 (2)? 2017-12-02 05:33:41 +0800 CST
  • Martin Hope
    user223600 gpg —list-keys 命令在将私钥导入全新安装后输出 uid [未知] 2017-11-26 18:26:02 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve