SSH提供了X11转发的功能,可以使用SSH简单地实现上一节描述的功能。
首先确认A机器上的SSH Server打开的X11转发功能。检查SSH Server配置文件/etc/ssh/sshd_config,确认有如下配置:
X11Forwarding yes
然后在从B机器上SSH到A机器:
ssh -X 192.168.9.135
-X选项打开SSH的X11转发功能。
在此会话中查看A机器上的DISPLAY变量,应与下面类似:
localhost:10.0
在此会话中查看A机器上的TCP监听端口,应有6010端口。
在此会话中启动A机器上的图形程序,图形应显示在B机器上。
实际上,SSH在A机器上打开了一个监听端口6010,并且在登录会话开始时为会话设置了DISPLAY变量为localhost:10.0。随后此会话中的图形程序运行时,X11 client库会将X请求发送到SSH监听6010端口中,然后A机器上的SSH将X请求转发到B机器,B机器的SSH客户端收到X请求后交给B机器上的X Server显示。
SSH隧道转发Windows版
原理与上一节类似,X请求也是通过SSH进行转发。要在Windows上显示Linux的图形界面,必须并运行一个X Server,这里选用Xming。
安装并运行Xming以后,使用ssh客户端连接上机器A,这里选用SecureCRT作为ssh客户端(使用putty同样可以)。
打开SecureCRT的会话选项作如下设置:
勾选这个选项的作用实际上与上一节中的ssh命令的-X选项相同。
设置好会话选项以后,如果当前会话已经登录机器A,注销再重新登录。
登录到机器A,查看DISPLAY变量:
启动一个图形程序,界面将在Windows上显示:
小结
通过上述的几个小实验,应该对X11的基本原理有了比较清晰的理解,以后遇到某些软件必须使用图形界面的时候,可以在Windows上使用Xming来进行远程图形显示,不必为此在服务器上安装臃肿的图形环境了。