首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

用putty实现SSH进入Ubuntu,图形远程操作

用putty实现SSH进入Ubuntu,图形远程操作

http://blog.sina.com.cn/s/blog_4b885c2c0101l5kb.html
终于做到了我一直想要做的事情,很高兴。权且当做记录和心得,供将来参考学习和帮助他人。
首先,微软的Marketing做得很好,第一点就是这个操作系统的名字取得简直是神来之笔。在计算机刚发明的时候都是文字界面,这个Windows的出现,让人们意识到原来可以用鼠标,对一个框框进行操作,而里面居然就是一个程序,这个框框可以放大缩小,可以关掉还可以开好几个。且不说各种特效,这个理念在当时简直是破天荒的。现在Windows(又喊了一次。。)这么成功,不说其他坏话,这个朗朗上口的名字肯定是功不可没。

但是。。。显然有个但是出现。

Windows的概念不是微软想出来的,在Windows操作系统之前,很早就有各种windows类似的东西,并且直到今天还有,还在发展。并且是开源的。这不禁让我想到了中国的腾讯,一开始的OICQ,后来因为版权关系变成了QQ,不也是从QQ抄来的吗?不评论其本质,只想说,不少人鄙视微软,学计算机的人更加清楚微软的底细,这些,其实全地球无国别,都一样。。。

言归正传。

(又)配了个服务器,这次决定装Linux,选择了Ubuntu。既然是服务器,肯定是不接显示器的,以往的习惯就是SSH进去命令行操作。windows下面的Putty很好用,加上WinSCP传输文件,基本是够了。我还是很习惯用命令行执行一切,但是既然有图形界面为何不用?看下来有几个方案:
  • 装个全尺寸Gnome桌面管理,连个显示器玩服务器。。。 这说出来显然是欠揍的
  • 装个VNC服务端,从客户电脑用诸如tightvnc连上去用。试过了,可以。但是我对VNC总有障碍。。。
  • 装LTSP,用瘦客户机接入。所谓瘦客户机,可以理解为没有硬盘的,只有芯片内存以及网络的简单终端接入。当然有这种电脑,连在电视上也成,既然现在,我就用虚拟机代替。试验了,可行。
  • 用SSHX-Forwarding,其实就是一个图形化版本的SSH解决方案。这个让我一直很纠结,因为一直搞不好。详情见下。
还有一个重要因素,其实就是我一直想要弄清楚从文字界面到图形界面的那个变化过程,或者说流程是什么,或者说工作原理。因为我真的不想一股脑装一个全套的DE(DesktopEnvironment),就是一个Windows系统,和Linux文字界面隔岸相望,都不知道怎么来的。怎么从文字SSH升级成图形桌面,这是关键所在。于是昨天花时间稍微看了一下。


看来看对路子了。网上有很多教程,道理原理,但找起来不容易,都是些没用的东西。直到睡觉前翻到这个网页 http://ubuntuforums.org/showthread.php?t=1201273-HOWTO: Minimalist Ubuntu from Scratch

首先,说一下道理。注意,不一定严格,但是对于理解来说足够了。

说一下文字Linux怎么玩的:安装完之后,开机,黑漆漆的屏幕无情地让你输入登录名和密码。当你万分牛叉的输入root和密码之后,你就是这台机器的主人了。然后你爱干嘛就干嘛——虽然root这个超级管理员不建议使用,但,你可以这么做。然后你可以文件管理,下载东西,压缩文件,ssh到别的电脑,看图片?看电影?网游?对不起,都没有,你还在七十年代左右。

要和图形搭界,是可以的。聪明的地球人尤其其中的宅男们想出了个办法,就是建一个所谓的X服务器,这个服务器可以用来处理一切和图形有关的东西。例如,你要显示一个时钟,在走;或者显示个计算器,进行计算。为了避免每次都自己写代码,你可以调用这个X服务器。只要这个服务器开着,你只要输入xclock,就会跳出个时钟。当然,这里还有个重要的东西,就是本来打命令的地方呢?这个可不能没。这叫shell模拟器,比如xterm。

所以设立X服务器,之后startx之后,就进入了另外一个漆黑的屏幕,什么都没有。这也是菜鸟(比如一开始的我)犯的一个错误,心想X服务器都弄好了,咋进去啥都没。这个时候可以按快捷键调出terminal输入,但和文字模式没啥区别。当然了,如果你有心,会发现这个时候各种图形程序可以执行了。一个更简单的例子,如果你安装了,输入firefox,就会跳出网页浏览器,可以看网页了!

但,每次要靠打命令跳出个程序,还是不到位(对不起,穿越了,显然作者是九零后上的网)

是的,我们还缺一个东西,那就是,Window Manager,也叫X WindowManager。http://en.wikipedia.org/wiki/Comparison_of_X_window_managers上面你可以进行学习,需要说的是,有很多很多,很多各种不同的WM,供你使用!用处就是弄出一个一个框框供你使唤,如果你用过Mac,你知道原来桌面还可以是这样的,这种东西。

X。。。这么牛的名字,一看就是宅男取得

基本来说,顾名思义,WM就是管理窗口的工具,但这个和“桌面环境/DesktopEnvironment”是有差别的。很多人这个是搞不清的,估计这个定义的讨论会让很多人打起来。比如著名的Gnome是一套桌面环境,但是他的WM现在是Mutter(以前用过Metacity);又比如Xfwm是XFCE的WM,Kwin是KDE的WM。

那什么是DE?严格定义不深究了,你可以这么想。你买了Windows,它里面建了很多程序给你用,保证你打字,听音乐,看电影都可以做到,还有管理硬件,设置桌面等等。这一套东西就是个桌面环境。你之外还想装别的东西当然是可以,不过有时候过于极端会显得很傻,比如你特别喜欢MAC的Finder作为文件管理器,然后吵着说非要在Windows里面用Finder。。。那只能是一滴汗了。

无论如何,DE要比WM更高级一点,东西更多,对电脑要求也很高了。

====

至此,我的想法也就有了:

直连服务器的话,弄个ubuntu的极简化版本,装个Xserver,自己装个轻量级的WM,经过教程推荐,选择Fluxbox(很酷哦!)。打开服务器的话,黑漆漆的登入,打startx(fluxbox自动会设定如startx),图形界面就来了!

注:这里装个极简化ubuntu也没这么简单,要点:
  • 用alternative CD
  • 启动之后用rescue broken system
  • 注意,磁盘空间其实是要大一点的。虽然说我看到人家说装好以后才几十兆,但是我分配了1G的空间居然报错安装不了!(反复确认才知道的)调整为8G就好了
  • 注意,如果这么安装的话从头到尾不会帮你设置root密码,你需要用这个安装盘回复root密码。不复杂,搜一下即可。
  • 安装base system,不要选其他组件即可。关键是要能上网。


我希望的远程接入方案:连上服务器,有个窗口,里面就是fluxbox。OVER

但是,没这么容易。。。见下

SSH进入服务器这个不难,但是要把图形转过来,高手会告诉你三个必须:
  • 必须在服务器端设置,允许X转发
  • 必须在客户端设置,允许X转进来
  • 必须设置相关的认证机制
看到这里吓死人。实际上,现在都可以自动设定了。但背后的道理需要知道:


X转发,就是在客户端,自己开一个X服务器。SSH漆黑的窗口里面如果有图形需求,就转到当地的X服务器上来,在例如Windows环境下绘制图像。

网上外国各大院校因为经常用,所以都会给出这种教程,比如
http://www.geo.mtu.edu/geoschem/docs/putty_install.html
http://www.nth-design.com/2010/05/19/x11-putty-xming/
假设你是Windows环境,你需要的是putty作为ssh客户端,Xming这个开源软件作为X服务器即可。putty里面稍作设置,我可以负责的告诉你,你立刻可以在客户端这里实现图形程序的运行。

例如:设置好之后,Xming会生成一个独立的窗口,平时看不见。如果你运行了例如xclock,他会蹦出来,显示这个图形程序。类似的,xterm也会蹦出来,存在于Xming的窗口里。

----

到这里,似乎任务完成了一半,就是说,只要你愿意,用服务器资源通过firefox上网也是可以的。可是。。。WM呢???于是急切的输入fluxbox。

在设置X转发之前,如果你打任何图形程序,都会在服务器端的界面跳出来(如果你用虚拟机的话,这点看得很清楚)。fluxbox也不例外,但这个就显得很蠢了对不对?设置X转发之后,别的图形程序会乖乖在本地出现,但是WM程序,很遗憾。会出错。Fluxbox会报错,告诉你说,已经有WM了,你不能运行第二个。

为什么?又找了半天,找到了这个:

http://askubuntu.com/questions/175902/remote-x-server-with-ssh-x

这位高手很详细的讲述了原因和解决办法。原因在于,一个终端只允许一个WM独占控制一切。显然,服务器端因为安装了fluxbox,一切都是为它存在;你ssh进去之后,相当是第二个WM来抢了,这是不行的。解决方案有三种:
  • 不用WM,直接运行图形程序
  • 用Xnest,生成X服务器中的另外一个X服务器,来照顾WM
  • 用Xephyr,和第二点其实是一样的,只不过它是Xnest进化版本
  • 用XDMCP。这是另外个话题了,前提需要装“图形登入”界面,简单地说开机之后不再是黑漆漆的一个屏幕对着你,而是好看一点的类似于Windows登陆界面的东西。目前不打算装。
终于,装了Xephyr之后,运行,又会跳出一个黑方块!根据这个教程


http://nims11.wordpress.com/2012/06/24/nested-x-servers-with-xephyr/

输入

$ Xephyr -ac -screen800x600 -reset :1 &
$ DISPLAY=:1


之后运行
$ xterm &
就顺利实现了


而激动地输入fluxbox之后,也实现了!!!如下




这个就是完全寄宿于Xming内的Fluxbox界面,打开的是thunar文件管理器,对桌面右击出现各种运行程序的快捷方式。


关于如何美化,如何配置WM,另外的话题。当然如果你愿意完全可以装其他WM甚至DE。


注:上面DISPLAY变量的设置必须,这就告诉系统把X图形放到哪里显示。本来是SSH转发的那个X服务器,但因为WM已经霸占了不行,所以我们把它们引到嵌在X服务器内的另外一个X服务器。


至此,想要达到的目标已经完成,其他的,大家自行研究吧!
继承事业,薪火相传
返回列表