如何通过附加服务器启用 SSH X11 转发?

如何通过附加服务器启用 SSH X11 转发?

我有主机 A、B 和 C。从主机 AI 只能通过 ssh 访问 B。从 BI 可以访问 C。我希望能够在 C 上运行 X11 程序并将显示转发到 A。

我尝试过这个:

A$ ssh -XB
B$ ssh -XC
加元 xclock
错误:无法打开显示:

但它不起作用。

答案1

有几种方法可以做到这一点,我更喜欢的是转发 ssh 端口:

首先连接机器B,通过B转发[localPort]到C:22

A$ ssh -L [localPort]:C:22 B

接下来,使用 [localPort] 通过此新创建的隧道从 A 连接到 C,转发 X11

A$ ssh -X -p [localPort] localhost

现在我们可以在 C 上运行 X11 程序并让它们显示在 A 上

C$ xclock

[localPort] 可以是您尚未在 A 上监听的任何端口,为了简单起见,我经常使用 2222。

答案2

你试过

A$ ssh -Y B
B$ ssh -Y C
C$ xlclock

-Y 标志“启用可信的 X11 转发”。

答案3

使用端口转发可以轻松实现这一点:

A$ ssh -NL 2022:C:22 B &
A$ ssh -X -p 2022 localhost
C$ xclock

端口 localhost:2022 通过 B 转发到 C:22 通过 localhost:2022 SSH 到 C 正常使用 X

答案4

假设问题是中间机器没有 X,但它配置为允许转发 X11,只需安装 xauth。

在基于 yum 的系统上 (fedora、redhat、centos):

B$ sudo yum install xauth

在基于 apt 的系统上(debian、ubuntu):

B$ sudo apt-get install xauth

相关内容