【问题标题】:X11 forwarding request failed on channel 0X11 转发请求在通道 0 上失败
【发布时间】:2016-12-22 00:53:52
【问题描述】:

当我执行“ssh -X abcserver”时,我收到消息“X11 forwarding request failed on channel 0”。 我上网查了一下,有人建议把“X11UseLocalhost no”换成“X11UseLocalhost yes”来解决。

但是,我和我的经理都没有此管理权限。我想知道,除了这个解决方案,是否还有另一种选择来解决这个问题?我也没有sudo 权限直接在服务器上安装X11

我的本​​地平台是:

Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org)
(gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02)

远程平台是:

Linux version 3.13.0-88-generic (buildd@lgw01-16) 
(gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3) ) 
#135-Ubuntu SMP Wed Jun 8 21:10:42 UTC 2016

【问题讨论】:

  • 试试ssh -Y ...。顺便说一句,您的问题属于网络的不同站点。
  • 仅仅因为您请求了 X11 转发(正常或受信任)并不意味着另一端的 sshd 必须允许它。这是我要检查的第一件事。还有ssh -vv -X(或-Y)。
  • @user3159253:您认为它属于哪个网站? SO 有适当的标签,一般问题和一般答案不需要特定于 OP 的平台。
  • 看起来像是 superuser.com 或 unix.stackexchange.com 的主题
  • 如果您只使用git 命令看到此问题,请参阅unix.stackexchange.com/questions/240013/… 中的解决方案

标签: linux ssh x11-forwarding


【解决方案1】:

在尝试登录时向 ssh 添加 -v 选项会提供大量调试信息,这些信息可能会提供确切问题所在的线索,例如

debug1: Remote: No xauth program; cannot forward with spoofing.

在我的情况下,在服务器上安装 xauth 解决了这个问题。

【讨论】:

  • 在 CentOS 7 上,必要的包称为xorg-x11-xauth
【解决方案2】:

我不得不编辑远程服务器上的 sshd 配置文件来解决这个问题。它适用于 Ubuntu 16.04 服务器:

$ sudo vim /etc/ssh/sshd_config

Set `X11UseLocalhost no`

保存文件。

$ sudo service sshd restart

$ exit

现在可以了!

$ ssh -X user@remotehost  
$ xclock
 

【讨论】:

  • 有人告诉我,使用“X11UseLocalhost no”是一个安全问题。那么为什么需要它呢?我的 Arch Linux 机器上不需要它。
  • 对于重新启动 ssh 服务,sudo service ssh restart 也可以。
  • 谢谢你。我的树莓派不想通过 ssh -X pi@ip_address 工作,这解决了!
【解决方案3】:
  1. sudo apt install xauth
  2. /etc/ssh/sshd_config 中将#AddressFamily any 行更改为AddressFamily inet
  3. sudo service ssh restart

这在 Ubuntu 18.04 LTS 上就足够了。

使用ssh -X 登录后(或激活PuTTY / KiTTY 选项“启用X11 转发”)后,您应该会看到环境变量DISPLAY 自动定义为localhost:10.0 或类似名称。首次成功登录(使用功能性 X11 转发)后,将生成文件 .Xauthority。另一个成功的积极迹象。

如果您有兴趣查看并了解会话中 X11 转发的详细信息,您可以尝试使用lsof -i -P|grep ssh

【讨论】:

  • 感谢这解决了我在 ssh 服务器日志中的错误sshd[25305]: error: Failed to allocate internet-domain X11 display socket.
【解决方案4】:

1.确保在ssh -X root@server期间你有root权限。

2.更新/etc/ssh/sshd_config并确保该行未注释

    X11Forwarding yes

3.systemctl restart sshd

4.从服务器退出

5.ssh -X root@server

6.virt-manager

【讨论】:

  • 我的发行版是 linux Manjaro,openssh 默认禁用 X11Forwarding。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-23
  • 1970-01-01
  • 2011-04-20
  • 2017-02-19
  • 1970-01-01
  • 2017-10-27
相关资源
最近更新 更多