14

我一直在尝试让 X11 端口转发在我的笔记本电脑上工作。我不知道为什么它不起作用。

当我尝试运行 xterm 时收到此消息:

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

我不知道这是否相关,但是当我登录时,我收到以下消息:

/usr/bin/xauth:  timeout in locking authority file /home/sphillips/.Xauthority

我想知道问题是否在于我笔记本电脑上的本地用户是 skp 而这台服务器上的用户名是 sphillips。我已经能够让 X11 转发与使用相同 skp 登录的其他计算机一起使用。

此外,X11 端口转发工作从使用 Xming 和 Putty 的 Windows 机器到同一服务器。我必须手动将 DISPLAY 变量配置为 IP 地址并显示 0.0,但它可以工作。

我在我的机器上运行了一个 xhost +,试图绕过任何安全问题。那仍然没有用。

在服务器上,我检查配置:

$ sudo grep X11Forwarding /etc/ssh/sshd_config
#X11Forwarding no
X11Forwarding yes
#   X11Forwarding no

在我的机器上也是如此:

$ sudo grep X11Forwarding /etc/ssh/sshd_config
[sudo] password for skp: 
#X11Forwarding no
X11Forwarding yes
#   X11Forwarding no

我的服务器是 RedHat Enterprise Linux 6,我的笔记本电脑是 Fedora 15。

任何人都可以给我任何关于尝试让 SSH X11 转发在我的笔记本电脑上工作的想法吗?

4

5 回答 5

13

我终于找到了答案(至少对于我的情况)!问题是 SELinux。我关闭了 SELinux,它没有问题。

如果你对所有血淋淋的细节感兴趣,你可以在我的博客上阅读它,但让我在这里详细说明相关事实......

在远程机器上,我使用 dmesg 查看日志消息:

dmesg | tail

我发现了很多这样的消息:

type=1400 audit(1332520527.110:51337): avc: denied { read } for pid=25240 comm="sshd" name="authorized_keys" dev=dm-5 ino=167 scontext=unconfined_u:system_r:sshd_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:home_root_t:s0 tclass=file

您可以使用以下命令检查 SELinux 的状态:

$ sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: permissive
Policy version: 24
Policy from config file: targeted

您可以使用以下命令将其转换为许可模式:

setenforce 0

有关 SELinux 的更多信息,我发现Red Hat 的指南很有帮助。此外,对于其他 SSH 问题,我发现David 的博客有助于获取日志记录以提供帮助。

对我来说,在那之后,我的 X11 转发开始工作没有问题。

SELinux 阻止了其他一些不同的事情。它无法创建必要的文件来进行密钥验证。我还发现它阻止 ssh-keygen 在主目录中创建密钥。

于 2012-03-26T02:40:26.143 回答
2

我也碰到了这个。但就我而言,这是因为我几天前删除了 IPv6 支持。然后我碰到了这个线程,解释了如何确保 sshd 只使用 IPv4。

我是这样做的,添加这个:

AddressFamily inet

到您的 ssh_config 文件(在 Ubuntu /etc/ssh/sshd_config 上)并使 sshd 重新加载其配置(kill -SIGHUP pid-of-sshd)。

于 2014-07-02T08:11:33.587 回答
2

我在 Debian OpenVZ 容器上遇到了同样的问题,问题似乎来自我的 /etc/hosts 文件,其中“localhost”受到 LAN IP 的影响,而不是 127.0.0.1。

前 :

192.168.0.15  dagi dagi.domain.net localhost localhost.localdomain

后 :

192.168.0.15  dagi dagi.domain.net
127.0.0.1     localhost localhost.localdomain

之后,两者都ssh -Xssh -Y魅力一样工作,甚至没有重新启动 sshd。

于 2012-01-25T14:25:40.047 回答
1

除了上面@Chl 的回答外,我还有一个损坏的 ~/.Xauthority 文件。

出于某种原因,即使在我的主目录下,它也归 root 所有。所以我不得不sudo -s然后删除它。

然后用touch ~/.Xauthority

在 Ubuntu 14.04 下,X 转发对我有用。

于 2014-05-05T15:32:23.577 回答
0
sudo grep X11Forwarding /etc/ssh/sshd_config

X11Forwarding yes 
#sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: permissive
Policy version: 24
Policy from config file: targeted
#You can turn it to permissive mode with this command:
#setenforce 0
于 2013-05-23T07:34:26.443 回答