Windows下做Linux开发,装虚拟机里,怎么可以不用SSH呢。有人说,“做Linux开发,还不直接装机器上跑起来了,还挂虚拟机,开SSH……闲的蛋疼了吧”,不管怎样,我接触Linux算是3年了,用了3年的Ubuntu了 吧,对Ubuntu算是了解,Ubuntu在Linux众多发行版里做的算是可圈可点的了,但是Linux在PC系统中的很多方面并不是非常到位,用户体 验也好,性能也罢。我也热爱Linux,不过不能否认它在这方面的一些略势,当然他强大的命令行、网络服务,以及那华丽的界面也是windows不可比拟 的。所以根据习惯也好,一般的交叉编译环境或是正常开发环境大多还是在windows+Vmware(或者VisualBox)下完成的,处于网上好多的 SSH服务安装的文章并不是很到位,并且大多都是一篇转了好多遍,我想还是有必要自己整理一下,方便自己将来再用到,顺便也可以帮到别人。
Ok,现在开始。。。。。
(请看完全文后再进行操作,我是边写文章边配置的,中间出现了很多问题,看完的话可以让你少走几段弯路。。。)
Ubuntu的apt-get工具之强大无人能及啊,这里不开强大的网络,离开了网络,仿佛就变得鸡肋了。所以,打开终端命令行:
$ sudo apt-get install openssh-server
我勒个去,怎么回事?我的这命令怎么这样?估计你的也是吧,见下图
怎么回事? 你猜……我猜是apt-get 的源列表里边找不到我想要的openssh吧,是这样。Apt-get应用就是通过一个记录有所有可用软件包的配置文件在服务器上查找你想要的可用软件 包,然后下载并安装的。难怪,现在都11.04了吧,我的跑的是9.04的Ubuntu。谁的服务器还给你维护着两年前的源,就算有,经历了两年的沧海桑 田,对应的更新地址应该也变了。解救而上述问题的方法就是更新你的sources.list,位于/etc/apt/sources.list 。 自己上搜索引擎search一下如何更新源列表,其实也就是复制粘贴,新手别忘了sudo 。另外,随着版本更新,老版本的源列表在执行:
$ sudo apt-get update
时,会出现大量not found 。证明该版本的源列表已经过期,尽量找新版本的。
jun更新成功后是:
然后重新执行上边命令试试:
$ sudo apt-get install openssh-server
会自动检索关联包,然后提示下载确认,输入:y ,回车,等他自行下载安装。
不出意外的话,更新完后就已经安装好了,其实我的除了一些小意外。不过是在自动配置ssh_config的时候,理论上不影响服务的运行的。(因为这时我是在边安装边写文章,一切都是实时的,下一步能不能安装成功,谁知道呢?),哈哈,我们继续。看看我的报错界面:
咱们来启动服务试试:
$ sudo /etc/init.d/ssh start
或者 :$ sudo /etc/init.d/ssh resart
不想在这敷衍,我的启动不开了,咱重启一下虚拟机,再试。我猜测是刚才更新东西还有配置是内核还有什么锁没有释放,Linux内核管理还有更新时持有的锁还有更改时的什么东西,都会影响到一些服务的启动,总之试试再说。重启:
$ sudo halt now (关闭后开启,或者restart,我总感觉halt后启动会快一些)
$ sudo reboot (额,还是reboot更快)
果然,重启也启动不了。你是不是也遇到同样问题?或许你的已经跑开了,一边乐着去吧,我得把它整理完了。还是启动不了,怎么办?搜集了老久,网上说,把openssh client卸载掉重新安装(ps:Ubuntu默认是已经包含了client的,咱就试试百。)
$ sudo apt-get remove openssh-client
等待片刻,索性把刚才装的opensshserver 也卸了。一切从零开始。
$ sudo apt-get remove openssh-server
然后先安装client:
$ sudo apt-get install openssh-client
还是不行,无果,好人没做成,自己掉进去了。上次装,一下子就OK了……问题是最提升人的,我继续。
原因找到:应该是版本问题,用的是9.04的系统,10.04的更新列表。造成版本的兼容问题。在原来基础上,系统自己检测,经过upgrade manager自动更新了部分库以后,服务自己启动了。看看sshd的进程:
也有可能是更新系统包的时候自动按照原来文件的安装记录,系统自己安装了服务,鬼知道啊。
让我们登陆一下,试试。这里用的是SecureCRT在windows7下访问Ubuntu的,win7下没有超级终端。SecureCRT也非常好用,也可用作串口工具,看看运行效果:
可以相互ping通,服务也正常,但是依然无法连接,继续……我觉得再reboot一下。
额,又二了,什么也没改,在SecureCRT新建一个连接就OK了。看图:
OK,到这里了……谢谢阅读。欢迎转载。Jun奉上。