尝试通过 SSH 使 X11 正常工作:连接被服务器拒绝

Luc*_*ano 3 linux ssh cygwin x11forwarding


在本地 Xterm 中使用 Cygwin/X11 Launch 命令进行 SSH:

xterm -e ssh -Y -v -l MyUser myserver.mydomain.com &

登录后,我跑了

setenv 显示 myclient.mydomain.com:0.0

当我尝试启动 Xterm 时,我得到:

Xlib:服务器拒绝连接到“myclient.mydomain.com:0.0”
Xlib:未指定协议

xterm Xt 错误:无法打开显示:myclient.mydomain.com:0.0

在另一台服务器上,我在不运行 setenv 的情况下启动新的 xterm 窗口没有问题。
该服务器上的“echo $DISPLAY”返回“localhost:11.0”

如果我尝试在另一台服务器上使用它,我会得到以下信息:

$ setenv DISPLAY localhost:11.0
$ xterm
xterm Xt 错误:无法打开显示:localhost:11.0

我想我错过了一些非常基本的东西,但我不确定它是什么。


编辑:
尝试不设置 $DISPLAY:

这是结果

$ echo $DISPLAY
DISPLAY:未定义的变量。
$ xlogo
错误:无法打开显示:

还是行不通 :-(


再次编辑:以上是直接登录。在尝试运行 xlogo 之前,我没有删除 $DISPLAY 或更改它

Dav*_*osh 7

不要在远程端设置显示器。通过在 SSH 上使用 -Y 参数,它将在(远程)本地端设置一个侦听器,该侦听器通过隧道返回本地端。

你应该能够做到这一点:

local$ ssh -Y user@remote
remote$ xlogo
Run Code Online (Sandbox Code Playgroud)

...xlogo 会弹出。

编辑:这假设显示器首​​先在本地系统上设置,即:

local$ xlogo
Run Code Online (Sandbox Code Playgroud)

...应该在您执行 ssh 之前工作,因为 ssh 只是将前向插入回原始会话认为是正确显示的任何内容。这很有用,因为您可以通过多个 ssh 会话进行显示:

local$ ssh remote
remote$ ssh further
further$ xlogo
Run Code Online (Sandbox Code Playgroud)

...应该管用。