ssh X11转发不起作用

dig*_*gle 13 ssh x11-forwarding

我一直试图从我的笔记本电脑上运行X11端口转发工作.我无法弄清楚为什么它不起作用.

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

X11 connection rejected because of wrong authentication.
xterm Xt error: Can't open display: localhost:10.0
Run Code Online (Sandbox Code Playgroud)

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

/usr/bin/xauth:  timeout in locking authority file /home/sphillips/.Xauthority
Run Code Online (Sandbox Code Playgroud)

我想知道问题是我的笔记本电脑上的本地用户是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
Run Code Online (Sandbox Code Playgroud)

在我的机器上:

$ sudo grep X11Forwarding /etc/ssh/sshd_config
[sudo] password for skp: 
#X11Forwarding no
X11Forwarding yes
#   X11Forwarding no
Run Code Online (Sandbox Code Playgroud)

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

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

dig*_*gle 13

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

如果您对所有血腥细节感兴趣,可以在我的博客上阅读,但请在此详细说明相关事实......

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

dmesg | tail
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

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

$ sestatus
SELinux status: enabled
SELinuxfs mount: /selinux
Current mode: permissive
Mode from config file: permissive
Policy version: 24
Policy from config file: targeted
Run Code Online (Sandbox Code Playgroud)

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

setenforce 0
Run Code Online (Sandbox Code Playgroud)

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

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

SELinux正在阻止其他几件不同的事情.它无法创建必要的文件来使密钥验证工作.我还发现它阻止了ssh-keygen在主目录中创建密钥.


Chl*_*Chl 2

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

前 :

192.168.0.15  dagi dagi.domain.net localhost localhost.localdomain
Run Code Online (Sandbox Code Playgroud)

后 :

192.168.0.15  dagi dagi.domain.net
127.0.0.1     localhost localhost.localdomain
Run Code Online (Sandbox Code Playgroud)

之后,两者ssh -Xssh -Y运行得非常顺利,甚至无需重新启动 sshd。