当使用ssh -X连接到远程Ubuntu 18.04时,它不能在我自己的PC上显示服务器的本地终端GUI吗?

时间:2019-12-18 15:31:15

标签: ssh ubuntu-16.04 ubuntu-18.04 remote-server

使用ssh -X连接到两台服务器时,发现了一件奇怪的事情。 一台服务器上安装了Ubuntu16.04,另一台服务器上安装了Ubuntu 18.04。我将以下简单的shell脚本上载到两个服务器:

#!/bin/bash

tab=" --tab"
options=()

cmds[1]="echo Banana"

cmds[2]="echo Cat"


for i in 1 2; do
options+=($tab -e "bash -c '${cmds[i]} ; bash'" )
done

gnome-terminal "${options[@]}"
exit 0

您知道此脚本将在服务器上打开带有两个选项卡的新终端窗口。一个选项卡将打印“香蕉”,另一个选项卡将打印“猫”。

然后,我使用ssh -X远程登录第一台服务器(Ubuntu 16.04)并在服务器上执行此脚本,我在电脑上打开了一个带有两个标签的新终端。那就是我在自己的计算机上看到服务器的远程终端GUI。但是,如果我在第二台服务器(Ubuntu18.04)上重复这些步骤,则计算机上什么也没有显示。

使用gedit登录两个服务器时,我在ssh登录终端上执行命令ssh -X,两种情况下我都可以在计算机上看到GUI。

我想Ubuntu 18.04无法通过ssh -X将终端的GUI传输到我的电脑。我对此很困惑。您能解释一下原因吗?顺便说一句,在这种情况下如何查看服务器的终端GUI?非常感谢!

1 个答案:

答案 0 :(得分:0)

ssh -X不传输终端。它隧道 X11连接。

X11的核心是基于网络的显示协议。程序(X客户端)连接到X服务器(在您的 local 计算机上运行的程序),并指示它创建窗口并向其中绘制内容。 除X服务器外,没有其他任何形式的图形再现!

ssh -X的运行方式不同于Windows Remote Desktop,因为在远程计算机上运行的是实际的图形环境。因此,如果您创建两个单独的ssh -X连接(甚至可能来自不同的计算机),则这些连接是彼此完全独立的。 因此,您无法使用ssh -X与先前存在的X会话进行连接!

您想要的是 Xvnc Xpra ,其中图形环境实际上是在远程计算机上运行的,并且仅将输出传输到本地计算机。 / p>