我有主机 A、B 和 C。从主机 AI 只能通过 ssh 访问 B。从 BI 可以访问 C。我希望能够在 C 上运行 X11 程序并将显示转发到 A。
我试过这个:
A$ ssh -XB B$ ssh -XC C$ xclock 错误:无法打开显示:
但它不起作用。
小智 31
有几种方法可以做到这一点,我更喜欢的是转发 ssh 端口:
首先,连接到机器 B 并通过 B 将 [localPort] 转发到 C:22
A$ ssh -L [localPort]:C:22 B
Run Code Online (Sandbox Code Playgroud)
接下来,使用 [localPort] 通过这个新创建的隧道从 A 连接到 C,转发 X11
A$ ssh -X -p [localPort] localhost
Run Code Online (Sandbox Code Playgroud)
现在我们可以在 C 上运行 X11 程序并让它们显示在 A 上
C$ xclock
Run Code Online (Sandbox Code Playgroud)
[localPort] 可以是您在 A 上尚未侦听的任何端口,为了简单起见,我经常使用 2222。
小智 7
这可以使用端口转发轻松完成:
A$ ssh -NL 2022:C:22 B &
A$ ssh -X -p 2022 localhost
C$ xclock
Run Code Online (Sandbox Code Playgroud)
端口 localhost:2022 被转发到 C:22 通过 B SSH 到 C 通过 localhost:2022 正常使用 X
小智 6
你有没有试过
A$ ssh -Y B
B$ ssh -Y C
C$ xlclock
Run Code Online (Sandbox Code Playgroud)
-Y 标志“启用受信任的 X11 转发”。
小智 5
对于较新版本的 opensshd,您必须禁用X11UseLocalhost它才能工作。
您需要在主机 C 上执行此操作/etc/ssh/sshd_config并重新启动 sshd 才能正常工作:
X11Forwarding yes
X11UseLocalhost no
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
80528 次 |
| 最近记录: |