一:SSL基本介绍
ssh是secure shell的缩写,是建立在应用层和传输层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性的协议。利用ssh协议可以有效地防止远程管理过程中的信息泄露问题。使用ssh之后,可以把所有传输的数据加密,避免中间人攻击,也能够繁殖DNS欺骗和ip欺骗,有个额外的好处是传输的数据是经过压缩的,可以加快传输速度。
二:SSL提供两种级别的安全验证
第一种:基于口令的安全验证
只要知道一台机器的账号和口令就可以登录到远程主机,传输的内容会被加密,但是不能保证正在连接的服务器就是你想要连接的服务器。即会受到中间人攻击。
第二种:基于密匙的安全验证
需要依靠密匙,就是需要为自己创建一对密匙,并将公共的密匙放在需要访问的服务器上。如果你要连接到该服务器,客户端软件会向服务器发送请求,请求用你的密匙进行安全验证。服务器收到请求后比较你发送的密匙和你放在服务器上的密匙。如能够果两个密匙一致,服务器就用公用密匙加密“质询”并发送给客户端软件,客户端软件收到质询后可以用私人密匙解密,再将其发送给服务器。
三、Linux环境下设置ssh免密码登录
说明:
1、环境:三台虚拟机系统 centos6.5(都已安装ssh),主机名分别为:a、 b、 c,三台主机上的用户皆为y
2、目标:使这三台主机实现自身及相互之间的ssh免密码登录
3、思路:为三台主机分别生成一对密匙,并将每台主机的密匙发送到其他两台主机。
具体步骤
1、使自身能免密码登录自身
(1)在普通用户下操作:在~/.ssh目录下生成一对密匙
cd ~/.ssh
ssh-keygen -t rsa
说明:输入该命令后会有提示,一直回车即可
(2)将公共密匙保存到authorized_keys文件中,实现对自身免密码登录
cat id_rsa.pub >> authorized_keys
(3)修改权限(需要修改~/.ssh文件夹和authorized_keys文件的,不然会报不允许的错误或者无法出现know_hosts文件)
chmod 700 ~/.ssh
chmod 700 ~/.ssh/authorized_keys
(4)修改SSH配置文件——“etc/ssh/sshd_config”
打开文件
vim /etc/ssh/sshd_config
将以下三句话的注释去掉
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件相同)
(5)重启SSH(在root用户下操作)
service sshd restart
(6)免密登录本机(假设本机为a)
ssh a
发现可以免密码登录。
三台主机都进行前6步的操作。
2、使一台主机能免密码登录另一台
说明:此处以a免密码登录b为例
(1)将a的公共密匙发送给b
在a的终端输入命令:
scp ~/.ssh/id_rsa.pub y@b:~/
在b的~目录下会有id_rsa.pub
(2)b将其密匙存放到自己的authorized_keys文件中。
在b的~目录下输入命令:
cat id_rsa.pub >> ~/.ssh/authorized_keys
(3)b删除a发来的文件
rm id_rsa.pub
(4)在a上测试是否可以免密码登录b
ssh b
说明:其他的同理