-J [user@]host[:port]
Connect to the target host by first making a ssh connection to
the jump host and then establishing a TCP forwarding to the
ultimate destination from there. Multiple jump hops may be
specified separated by comma characters. This is a shortcut to
specify a ProxyJump configuration directive.
有几种方法可以做到这一点,我更喜欢的一种是转发 ssh 端口:
首先连接机器B,通过B转发[localPort]到C:22
接下来,使用 [localPort] 通过这个新创建的隧道从 A 连接到 C,转发 X11
现在我们可以在 C 上运行 X11 程序并让它们在 A 上显示
[localPort] 可以是您尚未在 A 上监听的任何端口,为了简单起见,我经常使用 2222。
这可以使用端口转发轻松完成:
端口 localhost:2022 通过 B 转发到 C:22 SSH 到 C 通过 localhost:2022 正常使用 X
你试过吗
-Y 标志“启用受信任的 X11 转发”。
对于较新版本的 opensshd,您必须禁用
X11UseLocalhost
它才能正常工作。您需要在主机 C 上执行此操作
/etc/ssh/sshd_config
并重新启动 sshd 才能使其工作:假设问题是中间机器没有X,但它另外配置为允许转发X11,只需安装xauth。
在基于 yum 的系统(fedora、redhat、centos)上:
在基于 apt 的系统(debian、ubuntu)上:
如果你经常从 A 到 C,可以将 B 配置为代理:
A:~/.ssh/config
:那么它只是:
您可以将 -Y/-X 命令与 -J 命令行选项结合使用:
如果您有更多的主机要跳跃,而不仅仅是执行以下操作:
来自 man ssh:
它是在 OpenSSH 版本 7.3(2016 年 8 月发布)中引入的。
如果您在使用的任何 sshd 中禁用了 X11Forwarding,则无法转发 X11 显示。
人 sshd_config:
您必须确保在目的地和您正在使用的所有中间 sshd 上启用了 X11Forwarding。
只是一个小提示:你应该尝试使用 VNC,X11 显示转发非常消耗带宽。