假设有 3 台机器,A、B、C。B 和 C 在同一个网络上,而 A 是远程的。B、C 之间的连接非常快,但从 A 到(B 或 C)的任何连接都很慢。
我想在 C 上运行涉及图形输出的计算密集型作业(即从 MATLAB 生成 png 文件)。如果我从 A -> B -> C 进行 SSH,则 X11 输出显示在 A 上。我想从 A -> B 进行 SSH 并在 C 上运行相同的计算,但将所有图形输出限制在 B,这样缓慢的 A -> B 连接不会使工作永远进行(这就是我现在正在发生的事情)。这可能吗,如果可以,我应该如何设置它?
操作系统:A 是 OSX,B 是 Ubuntu,C 是 CentOS(计算集群的一部分)。
好吧,如果我过度简化了,请原谅我,但最简单的解决方案不是从 A 到 B(没有 X11 转发)的 ssh,然后从 B 到 C 的 ssh(有 X11 转发)。如果你需要图形界面开始作业,您可以首先为从 A 到 B 的连接启用 X11 转发选项,然后断开连接(A 从 B,但不是 B 从 C)并通过禁用 X11 的 SSH 监视作业作业开始后连接。
听起来您默认启用并启用了 X11 转发,因此您应该能够在使用以下行重新 ssh 时将其关闭:
ssh user@hostB -o "ForwardX11=no"
编辑:当然,这假设您能够启动从 B 到 C 的 X11 转发 ssh 会话。是这样吗?如果没有,您能否发布用于启动隧道会话的线路?老实说,这可能会变得复杂,具体取决于您的详细信息。