RHEL6 SSH连接测试

ssh相对于vnc来说算是比较安全的一个软件啦,这里来测试一下ssh的两种网络验证方式:密码验证和证书验证。考虑到服务器的安全性,一般用证书方式比较好,不用把服务器端的账户密码都告诉用户。

 

下面就开始吧,这个测试里我把宿主机作为服务器端,把虚拟机作为客户端。

一、服务器采用密码验证

1、修改服务器端配置文件(vim /etc/ssh/sshd_config)

a、将验证方式改为“密码验证”;PasswordAuthentication yes

b、重启 ssh服务;service sshd restart

2、客户端登录(ssh root@192.168.0.21)

这里可以看到,只要有服务器端的账户密码就可以登录服务器,ok,登录上了。默认是三次密码不对取消登录。注意了这里服务器端的hostname是desktop21.example.com,客户端的是server21.example.com,”小心感染病毒”这一段是修改的 /etc/motd 里的内容,呵呵^_^

然后退出来测试一下证书方式登录吧。

二、证书方式登录服务器

注意:保证服务器端是以密码验证方式,否则证书上传不了。

1、客户端先自己生成一份证书(ssh-keygen)然后要求选择证书保存路径,默认在家目录的.ssh文件夹里,按回车接受默认路径,接着输入证书密码,两次确认后,ok,证书生成。

2、上传生成的证书(ssh-copy-id -i ~/.ssh/id_rsa.pub student@192.168.0.21)

这里我将证书上传到服务器端的student账户里,下次登录student账户就不用输入密码了,也可以是其它账户。同样要求密码先验证身份,输入密码,ok,成功上传证书。

3、更改服务器验证方式为加密证书

同样是在/etc/ssh/sshd_config里改,将yes改为no即为证书验证了。然后重启服务,ok!配置成功。

4、虚拟机登录服务器验证

ssh student@192.168.0.21(我们把证书是上传到student下的,所以只有登录student才能成功)ok,成功登录

logout退出,试着登录root吧,发现“permission denied操作不被允许‘,原因是没有证书,不让通过了。

再试着登录student,还用输入密码吗?No ,直接连上了^_^,用logout | exit 试试退出再登,哈哈,没问题。索性关掉这个shell环境吧,再打开一个终端,连接,还是ok,直到你注销或重启之后才得再登录一次

三、有一个问题了,如果我在外办公,使用的这台点脑又没有给服务器上传过证书,怎么办?难道让服务器再改成密码验证让你上传证书?麻烦

检查一下服务器端的认证文件到底是什么样的,能不能伪造一份证书呢,来先看看吧

到服务区端证书上传到的地方看看:(~/.ssh/authorized_keys)最后一段文字“== root@server21.example.com”,知道了吗,需要用户和hostname呢,赶紧来测一测。

1、由于刚刚是用客户端的root生成的证书,故需要的就是系统要有root用户,和知道它的hostname,我的客户机(虚拟机)【证书所属用户:root】【hostname:server21.example.com】。由于上传的是服务器端的student,所以只能登录这个账户了。

2、用第三台电脑测试,将客户端的id_rsa密钥拷贝到第三台电脑的/root/.ssh/下,注意,之前是root生成的证书只能上传至点三台电脑的root下,以伪造root用户。

3、用第三台电脑伪造和客户端一样的hostname: --> vim /etc/sysconfig/network ,将其改为和客户机一样的hostname,ok完成。(注意,改hostname只能重启生效)

4、用第三台电脑连服务器端,输入证书密码,ok,登录成功!

本文为我的实验笔记,openoffice还不会排版,难免粗糙 QQ345258361

最后的测试不好截图请自己测试,我已测试通过,如有错误之处请指正,谢谢!