转发 X11 不起作用 - 错误:无法打开显示:localhost:11.0

转发 X11 不起作用 - 错误:无法打开显示:localhost:11.0

LM 17 Xfce OpenSSH_6.6.1p1 Ubuntu-2ubuntu2

尽管到处都用谷歌搜索,但我似乎无法让它发挥作用。我不断收到此错误。

$ xlogo
Error: Can't open display: localhost:10.0

我已经尝试过使用调试转发 x11 和 sshd 正常实例的两种类型的连接

ssh -Y remotehost -p 2500  
ssh -X remotehost -p 2500 

服务器配置允许 x11 转发。
在调试中使用新的 sshd 实例进行测试,我在连接时看到了这一点。我能说的调试的唯一相关部分:

debug1: channel 1: new [X11 inet listener]
debug1: channel 2: new [X11 inet listener]  

显示已设置

$ echo $DISPLAY
localhost:10.0

该用户是具有 sudo 访问权限的标准用户,否则我没有问题(一切 cli 都工作正常。)

此外,我没有使用多路复用连接,
当我连接到自己时可以使用 x11 转发 (ssh -X 127.0.0.1)。
当错误出现时,在连接时使用 ssh -v 不会提供任何更有用的反馈。
如果我错过了任何可以尝试的事情,请告诉我。我很困惑。

编辑:

$ netstat -l | grep 6010

tcp        0      0 ip6-localhost:6010      *:*                 LISTEN     
tcp6       0      0 ip6-localhost:6010      [::]:*              LISTEN  

另外,我在服务器上执行了 ssh -X 127.0.0.1 并输出了以下内容:

Warning: No xauth data; using fake authentication data for X11 forwarding.

xauth 列表。我应该关心这些私人信息吗?不太确定我在 atm 上发布的内容。

remotehostname/unix:14  MIT-MAGIC-COOKIE-1  70f068c8dd2431088bcxxxxxxxxx
remotehostname/unix:13  MIT-MAGIC-COOKIE-1  be500209ccb9fb769eexxxxxxxxx
remotehostname/unix:12  MIT-MAGIC-COOKIE-1  01fc30e4887501602ebxxxxxxxxx
remotehostname/unix:11  MIT-MAGIC-COOKIE-1  d04f849725f71070095xxxxxxxxx
remotehostname/unix:10  MIT-MAGIC-COOKIE-1  42e99c898ef9aa295b4xxxxxxxxx

我更改了 /etc/hosts 文件以将 localhost 放在第一位。现在我收到一条附加消息。我还重新启动,看看是否有帮助。

127.0.0.1 localhost remotehostname localhost.localdomain
::1 localhost ip6-localhost ip6-loopback


X11 connection rejected because of wrong authentication.
Error: Can't open display: localhost:10.0

我删除了 ~/.Xauthority 文件,并注意到它没有自动创建。我在我的树莓派上测试了这个,它给了我一个警告,然后创建了 ~/.Xauthority 文件。此行为不会发生在远程主机上。不过,创建它的权限很好。

答案1

由于$DISPLAY设置正确且未~/.Xauthority创建文件,这可能意味着尽管考虑了 X11 转发,xauth但未运行。原因之一可能是它不在路径中(我在 Mac OS X 下遇到了这个问题,但在 Linux 下这会很奇怪)。您可能想通过创建文件来自己完成这项工作~/.ssh/rc。例如,我有以下内容:

if [ -n "$DISPLAY" ]; then
  echo "DISPLAY: $DISPLAY" >&2
  if read proto cookie; then
    if [ `echo $DISPLAY | cut -c1-10` = 'localhost:' ]; then
      echo add unix:`echo $DISPLAY | cut -c11-` $proto $cookie
    else
      echo add $DISPLAY $proto $cookie
    fi | $HOME/.ssh/xauth.wrapper -q -
  fi
fi

其中是实现文件锁定的~/.ssh/xauth.wrapper包装器。但是您可以仅使用路径名或完整路径名以防万一...这很像 sshd(8) 手册页中描述的内容(请参阅“SSHRC”部分)。xauth~/.Xauthorityxauthxauth

小心不要犯任何错误。

相关内容