分类: LINUX
2012-02-19 20:58:38
学习目标:学习并掌握ssh的信任关系的建立及原理
1. ssh的信任关系。
ssh信任关系,是指一台服务器上的一个用户信任客户端的一个用户,允许这个用户不输入密码登录,另一个说法叫做public_key_auth。实际上就是证书信任。
2. “中间人”攻击方式
像ftp、pop和telnet在本质上是不安全的,因为它们在网络中传输数据的时候是用的是明文传送口令和数据,一些人就会就会截取其中的口令和数据。“中间人”的攻击方式是指,“中间人”冒充真正的服务器接收你发给服务器的数据,然后冒充你,把数据发给服务器。
3. ssh介绍(之前的ssh我是写成“Ssh”的,这个是由于word而造成的,结果我的导师说我不细心,一会是小写,一会是大写,很不细心,所以我还是都改成小写吧)
ssh,即Secure Shell,它是把所有传输的数据都进行了加密。它有两个版本,即1.x和2.x,其中只有Open SSh是免费的。从客户端来看,ssh有两种级别的安全验证,一是口令验证(只要你知道账户和密码,就能登录,并且所传输的数据都是加密的),二是密匙验证(自己为自己创建一对密匙,然后把公用密匙放到服务器上;如果你连接服务器的时候,客户端首先发送一个请求,里面包括公用密匙,请求服务器进行验证;服务器接收到请求之后,就会在自己的家目录下寻找你的密匙,与你发送过来的密匙进行比较,如果相同,服务器就会把自己的“质询”信息进行加密,发送给客户端;客户端接收到“质询”信息之后,就会用自己的私人密匙进行解密,然后把它发送给服务器)。
4.ssh建立信任关系
将客户机和服务器设置为互相信任关系。
(1)生成密匙
a)使用ssh-keygen -t rsa命令分别在客户机和服务器上生成一对密匙;
(2)分发公用密匙
a)将(1)中生成的公开密匙分别拷贝到对方的机器上,放到~/.ssh/目录下,文件名为authorized_keys,注意:此文件的权限必须为644.
问题:关于authorized_keys文件权限,许多网上的资料都说必须是600的权限才能够成功建立起信任关系,但是在我调试的时候,并不是这样的啊。我测试了644和600的权限,这两个的权限都是可以建立起信任关系的,只有当其拥有执行权限的时候,是不可以正确建立起信任关系的。
(3)配置ssh
a) 修改/etc/ssh/sshd_config文件,将如下前三行的注释去掉。
(4)测试
a) 第一次登录需要输入passphrase,第二次以后就没有了。
5. 在输入ssh后面的登录名字比较长的时候,可以修改~/.ssh/config文件。
在config文件中添加如下:
那么下次登录的时候就直接输入ssh abc就可以了。
6. rcp
7.ssh命令敲完,按下回车之后,需要等待的时间比较长。
8.ssh信任关系建立好之后,删除.ssh目录,重新建立信任关系失败。
原因是没有将重新生成的私匙加进来,所以当普通用户注销之后,就会正常建立信任关系。在重新生成密匙的客户端,使用命令
ssh-add ~/.ssh/id_rsa
将密匙加进来即可。
参考资料:
(1)25个必须记住的SSH命令,你用过了吗?
(2)ssh配置手册