我正在尝试通过 ssh 连接到远程计算机,将显示设置为远程计算机,然后打开一个窗口。任何窗口 - 没关系,但我正在尝试打开一个 xterm 窗口以进行测试。
我遵循的基本过程是这样的(在 Konsole 和 xterm 窗口中尝试):
ssh -XY <user>@<remotecomputer>
xhost +
setenv DISPLAY <remotecomputer>:0.0
xterm
笔记:
- 我尝试在 ssh 命令中将 -XY 更改为 JUST -X 和 JUST -Y,但这两种尝试都没有解决我的问题
- 我了解 xhost + 的安全含义。这只是暂时用于测试目的,但我很欣赏对此的评论。
- 我专门设置了 DISPLAY 变量,以便窗口将显示在远程计算机上。如果我不这样做,它们就会出现在我所坐的机器上,这不是所需的功能。
这样做会导致我出现以下错误:
xterm: Xt error: can't open display: <remotecomputer>:0.0
我缺少什么?
编辑 1:我尝试了详细的 SSH 并确认它正在请求带有身份验证欺骗的 X11 转发。
编辑2:我注意到在我的ssh_config文件中,X11Forwarding没有设置为“yes”。是否需要显式设置,或者 yes 是默认值吗? X11Forwarding 有一行,它被设置为“no”,但它被注释掉了,所以我认为这不会直接影响任何事情。
答案1
您正在执行的许多步骤都是不必要的。
你所需要的只是
ssh -X <user>@<remotecomputer>
xterm &
或将 更改-X
为-Y
.如果您在执行此操作时收到任何错误消息,请告诉我们。
当您执行此连接时,ssh 将$DISPLAY
在远程计算机上设置为类似 的内容localhost:10
,并将安排端口 6010 的流量通过 ssh 连接返回到本地计算机,并转发到本地 X 服务器。它还将设置 xauth 样式的访问,无论您的主目录是否在计算机之间共享。
你的其他步骤。
- 主机+
这会关闭全部安全。一个非常糟糕的主意。如果你做了这个糟糕的建议,你就会这么做后您已经设置了显示。
- setenv DISPLAY 远程计算机:0
这个 csh 风格的命令表示将显示设置为通常在远程计算机的控制台上启动的显示。这可能不存在,并且几乎可以肯定您将无权打开该显示器上的任何内容。