两台远程机器之间的 X11/X 转发

两台远程机器之间的 X11/X 转发

假设有 3 台机器,A、B、C。B 和 C 在同一个网络上,而 A 是远程的。B、C 之间的连接非常快,但从 A 到(B 或 C)的任何连接都很慢。

我想在 C 上运行一个涉及图形输出的计算密集型作业(即从 MATLAB 生成 png 文件)。如果我通过 SSH 从 A -> B -> C,X11 输出将显示在 A 上。我想通过 SSH 从 A -> B 并在 C 上运行相同的计算,但将所有图形输出限制在 B 上,这样缓慢的 A -> B 连接就不会使作业永远耗时(这就是我现在遇到的情况)。这可能吗?如果可以,我应该如何设置?

操作系统:A为OSX,B为Ubuntu,C为CentOS(计算集群的一部分)。

答案1

好吧,如果我过度简化了这个问题,请原谅我,但最简单的解决方案不是从 A 到 B 进行 ssh(不使用 X11 转发),然后从 B 到 C 进行 ssh(使用 X11 转发)吗?如果您需要图形界面来启动作业,您可以先为从 A 到 B 的连接启用 X11 转发选项,然后断开连接(A 与 B 的连接,但不断开 B 与 C 的连接),并在作业启动后通过具有禁用 X11 连接的 SSH 来监控作业。

听起来您的 X11 转发功能已经正常运行并默认启用,因此当您使用以下行重新 ssh 时,您应该能够将其关闭:

ssh 用户@主机B -o “ForwardX11=no”

编辑:当然,这假设您能够从 B 启动到 C 的 X11 转发 ssh 会话。是这样吗?如果不是,您可以发布用于启动隧道会话的行吗?根据您提供的详细信息,这可能会变得很复杂。

相关内容