通过ssh连接Arch与Ubuntu

也是个简单的笔记。

缘起是因为前天让刷刷安装Ubuntu,但是毕竟很多操作她现在不熟悉,为了好好使用,首先得提高易用性是吧。前天是在教室里,鉴于网速原因,我没让给安装语言支持,所以输入法也没有。所以昨天就变成这样的状况了……:我们开着扣扣,然后我一条一条给命令和步骤让她在那边自己着语言支持菜单,还有更换源、更新系统什么的。比较纠结。

想起在FC之前某一期上面读到过,某老爹学习使用Ubuntu,出了问题的时候让儿子ssh连接上来解决。此法甚善,不是么?

今天一早起来我就这么开始做了。此前想过让小王子先开他的Ubuntu让我这么试验试验的,不过他现在还躺床上呢……接着“果断”打开我的台式机,决定用Arch来联合Ubuntu做測試。

Google一番便开动了~

首先从Arch开始

估计着默认就没安装ssh相关的东东,所以pacman -Ss ssh了一下,只要这样就好了:

pacman -S openssh


[提前说明一下,这个东西和Ubuntu里面不一样,Ubuntu里面那个openssh-server和openssh-client是分开安装的]

这中间出现了一下问题。我用了pacman -Syu想升级一下,不过一看要升级一百多个包,于是就把它给取消了,好像就是因为这个操作,接着使用pacman就出现了一个libssl.so再接着似是一个libcrypto.so无法找见什么的错误。前面那个我以为是没有安装openssl的关系,也给pacman了,后面那个pacman直接不运行了。无奈之后继续google,在英文论坛上看到讨论,说大概意思是由于取消了 pacman -Syu,造成源内包信息的版本出现了问题,所以怎么着怎么着不行了……没太搞明白。

解决方案参考这个链接:
https://bbs.archlinux.org/viewtopic.php?id=94902

老外也挺搞笑的,有个人回贴多了有影响原帖讨论主题的倾向了,于是楼主出来说话了:

Could you please be so polite and stop spamming my thread with your problems?!
I would prefer to have my problem sorted here – your free to open your own threads…
Pierre, any ideas how to solve that problem?

大致意思是给缺少的东西做软链接吧。因为arch下面openssh的版本升级会引起不少问题——也是论坛上看到说的。

ln -sf /usr/lib/libssl.so.1.0.0 /usr/lib/libssl.so.0.9.8
ln -sf /usr/lib/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.0.9.8

如此搞定,继续pacman

接下来参考Wiki:

http://wiki.archlinux.org/index.php/SSH
【为了编辑方便还安装上了VIM,系统默认那个VI超级不好用,方向键和退格删除键什么的的都有问题,我弄不明白,还是VIM上手】
vim /etc/ssh/sshd_config
推荐改变“Protocol”行成这样:Protocol 2
[这个其实可以不用修改,因为只是小小用一下,不是服务器,配置上面快捷能用就行]
【我现在不明白的是,这个文件里每一行都是#开头的……这是全文注释的意思么?(这我也是写日志的时候才想到的问题……)】
比较关键的设置在下面:允许其它主机进入

为了让其他人通过ssh登录到你的机器上,你必须要设置“/etc/hosts.allow”这个文件,加入类似下面的文字:

# 让每个人都能连接到你
sshd: ALL

# 或者限制只能特定的ip能够
sshd: 192.168.0.1

# 或者限制ip段
sshd: 10.0.0.0/255.255.255.0

# 或者限制为IP匹配
sshd: 192.168.1.

咱不设那么多,直接添加个sshd: ALL就好了。

新手一定几个前面不要加#号,加了的是注释……

还说要检查/etc/hosts.deny这里的设置,意思是别人能不能ssh进来吧,先留着,双机互测么。

然后是为了开机启动这项守护进程,把sshd加到/etc/rc.conf中的”DAEMONS”部分:

DAEMONS=(... ... sshd ... ...)

开始/重启/停止这个daemon:

# /etc/rc.d/sshd {start|stop|restart}

至此,Arch上面ssh的配置已经完成,可以去做测试连接了,

#ssh username@hostname_or_hostip

更多细节设置,比如加密Socks通道、用SSHFS挂载远程文件系统等等,还是参看wiki教程,ps一下,那个scp真的挺好用~

Ubuntu部分的设置

找到两个东西看了看:
Ubuntu中文wiki:SSHHowto
百度空间的文章:Ubuntu SSH的使用

像上面提到过的那样,Ubuntu里面默认安装了openssh-client,但是没有安装openssh-server,所以我们可以用来连接别的主机但是不能让别的主机连接我们的机器。给它安装上:

sudo apt-get install openssh-server

然后/etc/ssh/sshd_config这几个配置文件不动了,先用着默认配置就行,喜欢折腾的就自己修改一下端口、设定权限之类的吧。

主要还在修改/etc/hosts.allow这个文件上。我在自己机器上就这么加了ssgh: ALL就好了。

这里提一下arch和Ubuntu启动脚本的存放位置的区别
在Arch下面,我们要通过/etc/rc.d/sshd start来启动,但是在Ubuntu中,则是这样/etc/init.d/ssh start

然后在那边Archlinux的机器上登录成功。

【【这里忍不住写一下自己的疑惑:我知道Linux允许多用户同时登录主机,但是,为什么Linux中可以允许同一个用户同时在两个不同的地方登录呢?话说平时在使用的时候那个Ctrl+Alt+F1~6也是允许同一个用户“多处”登录的,但那毕竟还是同一个机器呢。好吧,我是受类似扣扣这种工具影响才有的这样的想法……】】

两边系统登录都成功了~不过我也不知道具体可以做什么……先这么着,我就相互更新了一下系统……更新控……嘿嘿。

后来刷刷同学上线咯……然后我看IP发现她在教学楼。按照上面探索出来的Ubuntu上的做法,我让她照着这么做了。出了点问题是那个hosts.allow文件里面加sshd: ALL的时候也加上了#……不过很快理解怎么回事了。

但是……

最终测试还是没连接上,原因么……我也不知道,RP不应该这么差的吧,好歹我也弄好了我自己这边Ubuntu上面的设置方法才去讲解怎么折腾的。那么只能怀疑是教学楼网络原因了?等各自在宿舍的时候在测试吧……写日志写到这里,某人已经在宿舍玩三国杀online了……

吃午饭的时候想着,我那台机其实可以开着当服务器试验的嘛……继续可以折腾了~

UPDATE: 下午和刷刷重新尝试连接的时候,我问了一下用户名。。。汗一个,我记成了ID了,她用的是自己的名字……难怪连接不上了……然后就很顺利的连接着更新作业了。OK。

另外今天发现了Ubuntu还是可以远程桌面远程协助的哦……OUT了,才知道,相当好用!

-EOF-

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s