好的,我尝试过使用 Xming 和 PuTTY,以及 Cygwin/X 和 Cygwin ssh,但它不起作用。
我已经能够在本地运行 X 应用程序,所以这不是客户端 X 问题。
我已使用连接到服务器
ssh -X user@server
最后得到了这个:
local-user@client: ~$ ssh -X user@server
user@server's password:
Last login: Sun Jul 19 15:26:46 2009 from 192.168.100.147
[user@server ~]$ xclock &
[1] 27770
[user@server ~]$ Error: Can't open display: localhost:10.0
[1]+ Exit 1 xclock
[user@server ~]$
[user@server ~]$
这是我的 sshd_config 的相关片段
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes
我似乎无法在客户端找到 ssh_config。/etc/ssh 不存在。
您是否修改了 PuTTY 设置;输入服务器名称或 IP 地址后,更改 SSH -> X11 设置:选中“启用 X11 转发”框,然后在“X 显示位置”中键入 localhost:0。不要忘记返回“会话”并保存您的更改。
重新运行 ssh,但也要使用 -v 标志。远程端的 sshd 可能无法找到 xauth 来设置您的 mit 魔术 cookie 以进行 X 身份验证。
我不熟悉 Windows X 服务器。但以下两点对任何 X 服务器都是通用的。
我遇到过将 X 服务器配置为不侦听 TCP 连接的情况。在这种情况下,ssh 无法转发 X 连接。您能否检查
运行 X 服务器的机器上的端口 6000 是否打开。(在 Linux 中,这可以通过
sudo netstat -antp | grep 6000
我不知道它是否也适用于 Cygwin?)
除非您告诉它是安全的,否则 X 服务器可能会拒绝连接。(在 Linux/Unix X11 服务器中,这可以通过
xhost +主机名
其中 'hostname' 是您希望允许访问 X 服务器的主机名。)
前面提到对 ssh 使用 -v (可能多次)是值得钻研的,以找出问题所在。
Fedora 11 修复
须藤 vim /etc/gdm/custom.conf
您的文件应该有以下几行(可能还有其他行,所以不要这样)
[xdmcp]
[安全] DisallowTCP=false
然后重新启动X。它可以工作......你可能需要调整你的防火墙
您可能想要使用
-Y
而不是-X
. 基本上,这会正确设置信任(下面的 ssh 手册页中的详细信息)。您可能想看看使用 Xvnc。在 Fedora 上,您可以选择启动多个 X 桌面,您可以随时轻松地连接和分离它们。一个缺点可能是您的 X 桌面一直在运行。如果绝对性能是一个问题,那就再想一想(但是,嘿,如果它空闲了一段时间,内核无论如何都会将它交换到磁盘上)。然而,一个不错的好处是,您可以启动任务(在 gnome 应用程序或终端中)并在它仍在运行时断开连接。您可以随时与任何 vnc 查看器连接(使用端口转发以增加安全性)以监控其进度。
或者......只需使用NoMachine 的软件,它总是通过 SSH 使用压缩的 X。只有一个 RPM 安装了。
如果您的本地 X 服务器工作正常并在本地网络套接字上侦听(应该在端口 6000 上进行,检查它!)您可以手动转发连接。
我在这里假设服务器上没有运行 X 服务器。
从服务器转发 localhost 端口 6000(以便 SSH 侦听服务器上的端口 6000)到本地端口 6000。连接后执行:
您应该
xclock
从本地 X 服务器上显示的服务器获取。我假设问题是“从Windows Vista 客户端通过 SSH到Fedora 3 服务器的 X11 隧道无法工作”。(来回互换)
在这种情况下,请查看我的答案,甚至其他人在Remote-desktop 从 Windows PC 进入 Ubuntu 9.04 的答案。