通过ssh转发X访问Linux无头工作站

无论微软如何专注于桌面,X的设计还是能让他们汗颜。比较一下Windows远程桌面(2008Server终于有所改进)和X转发的效果就可以理解,为什么Linix的世界里显示GUI环境依靠的竟然是Server-Client架构。

在Windows下,只要实现两个要素就可以实现X的转发:1.X Server服务;2.ssh客户端。前者可以用Xming,后者可以用putty或openSSH。或者还可以用Cygwin或UWIN这样的套件(本来要建议用UWIN的,因为UWIN带的ksh是符合Ksh93标准的“真正的”ksh,而且比Cygwin要小的多,可惜AT&T的网站似乎出了问题,死活下不到uwin-xbase包,问他们的用户组么,说我的邮件疑似SPAM,至今还在审核中……)。Xming和putty当属绝配,Xming甚至在安装时自带plink.exe,开包即用。

很多教程都建议使用者打开putty,勾选X11转发,然后启动Xming,其实不必。双击XLaunch后,点击下一步,选择"Start a program"来代替默认选项,点击下一步。此时XLaunch会默认将程序设定为xterm,你可以将其换成任何应用程序。点选"Using Putty(plink.exe)",输入工作站用户名,下一步&下一步。在最后一个界面,有个"Save configuration"按钮,点击后将配置保存成一个.xlaunch文件。以后双击这个文件就会提示你输入密码,然后直接启动程序。如果你确定你的Windows足够安全,甚至可以在最后一步勾选"Include Putty Password",那会将密码明文保存在配置文件中,以后当你双击文件图标时,程序就会像本地程序一样启动,无需任何设置。由此,你可以为常用软件设置快捷方式。

有时Xming死活连不上远程工作站,明明有提示输入密码,也明明安装了要启动的程序,但就是转不起来,这时可以试试看用OpenSSH代替其自带的plink,如果openSSH可以,那么多半是认证模式的问题——那就牵涉到我永远也搞不清的X配置问题——不过搞不清可以绕过去,只要让远程工作站运行在init 5级别即可。

Xming也有比较严重的问题,比如点击Swing的菜单时,菜单项会在展开几毫秒后莫名消失,你永远也点不到该死的鼠标项(只能用键盘焦点来操作),所以对于Java桌面程序来讲,Xming还真不好用

至于在Linux下,这样的访问就更简单,给你的ssh命令加个-X参数就完了,The End!

相关推荐