SSH
安全外壳协议,SSH 为建立在应用层基础上的安全协议,端口22。相比telnet,SSH 更可靠,所有传输的数据都会被加密;专为远程登录会话和其他网络服务提供安全性的协议。
基于非对称加密方法的,服务器和客户端都会生成自己的公钥和私钥。
非对称加密:公钥加密,私钥解;私钥加密。公钥解;私钥一般只有自己知道。
工作流程:
宿主机ip134.1,访问虚拟机ip134.135,在这之前ssh的端口已经被我改成了2222
总体流程:
客户端服务器三次握手—>服务器生成公钥私钥,发送公钥给客户端—>客户端使用服务器的公钥进行加密会话密钥发送给服务器—》服务器接受用自己私钥解密公钥,得到会话密钥
1.宿柱机开始访问:
2.抓包分析
查看数据流:
加密:
- tcp三次握手:
- 版本信息协商
- 密钥交换
服务器公钥私钥位置/etc/ssh:
客户端发送新的会话密钥newkeys
-
认证阶段
第一种:客户端用自己的会话密钥加密账户密码信息,发送客户端,完成登录认证。
第二种免密登录原理:
1.客户端自身生成私钥和公钥,公钥发送给服务器,(服务器以某种方式(通常是手动添加,这种就是未授权访问漏洞)保存到服务器~/.ssh/authorized_keys文件中);
2.客户端请求,发送公钥给服务端,服务端验证是否有;
3.如果有,就随机生成随机数r,并用公钥来加密,发给客户端
4.客户端收到后私钥解密,并返还给服务端
5.服务端再用公钥解密,在对比随机数,相同就完成免密登录后续。。。。。
又一次体会到了密码学无处不在!!!