检查 X11 转发是否正常工作的最简单的例子是什么?

检查 X11 转发是否正常工作的最简单的例子是什么?

我可以访问一个集群,并想使用最简单的示例通过 X11 转发 ssh 进入集群,看看它是否有效。目前,我只需登录集群即可:

$ ssh -Y user@cluster

并且据我所知,集群中唯一具有显示功能(如 GUI)的程序是matlab,因此我只需运行它:

$ matlab

过去这种方法是可行的,但我想知道最简单的命令是什么,以便在屏幕上显示某些内容,看看它是否有效。目前,运行matlab会打开命令界面,但不会显示错误或其他任何内容。

有人知道有什么替代命令可以查看是否有效吗?一个继承自 Ubuntu 的命令,不需要我安装 X11 以外的任何东西,这就是我的想法。类似于:

$ display_a_box_with_text HELLOWORLD

我不知道是不是只有我一个人这样想,但检查 X11 是否正常工作的唯一方法是运行 MATLAB,这似乎很荒谬。一定有更好的方法来检查这一点。

答案1

不要尝试发出 ssh 命令,而是尝试:

$ ssh -v -Y user@cluster

添加另一个参数-v以启用命令的调试模式ssh。搜索包含的行Requesting X11 forwarding,例如:

$ ssh -v -Y user@cluster
[...]
debug1: Requesting X11 forwarding with authentication spoofing.
[...]

登录后,您可以尝试以下命令打开 X 窗口:,,,,xterm等这些已在评论中提到。xclockxcalcxedit

您要求使用自定义文本的对话框,因此您应该尝试xmessage

$ xmessage -center hello!

答案2

如果你没有xmessage,可以使用以下替代方案:

  • xdg-open .sudo apt install xdg-utils
  • xterm

这些在我工作时的 CentOS 7 服务器上运行良好。

答案3

你可以尝试三件事

  1. xeyes
  2. xclock
  3. xmessage -center hello!

答案4

以下是从这里得到的答案邮政

要检查 X11 转发是否已启用,请查看 DISPLAY 环境变量的值:echo $DISPLAY。您应该看到类似 localhost:10 的值(远程计算机上运行的应用程序被告知要连接到同一台计算机上运行的显示器,但该显示器连接实际上由 SSH 转发到您的客户端显示器)。请注意,如果未设置 DISPLAY,则手动设置它是没有意义的:如果转发到位,则环境变量始终正确设置

相关内容