1.总结ssh建立原理
SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务。
对称秘钥: 加密解密用的同一秘钥 (安全性较低 执行效率较高)--数据传输
所谓对称加密,指加密解密使用同一套秘钥。如下图所示:
图1-1:对称加密-Client端
图1-2:对称加密-Server端
非对称秘钥: 公钥--加密 私钥--解密 (安全性较高 执行效率较低)--握手阶段
- 1.远程Server收到Client端用户TopGun的登录请求,Server把自己的公钥发给用户。
- 2.Client使用这个公钥,将密码进行加密。
- 3.Client将加密的密码发送给Server端。
- 4.远程Server用自己的私钥,解密登录密码,然后验证其合法性。
- 5.若验证结果,给Client相应的响应。
私钥是Server端独有,这就保证了Client的登录信息即使在网络传输过程中被窃据,也没有私钥进行解密,保证了数据的安全性,这充分利用了非对称加密的特性。
但上述流程会有一个问题:Client端如何保证接受到的公钥就是目标Server端的?,如果一个攻击者中途拦截Client的登录请求,向其发送自己的公钥,Client端用攻击者的公钥进行数据加密。攻击者接收到加密信息后再用自己的私钥进行解密,不就窃取了Client的登录信息了吗?这就是所谓的中间人攻击
如何解决这个问题?
1. 基于口令的认证
2.基于公钥认证,如下:
A 192.168.10.134
(1)生成密钥对
#ssh-keygen -t RSA -b 4096
一直回车
#ll /root/.ssh
(2)发送公钥到要连接的服务器主机
#ssh-copy-id -i 192.168.10.129
(3)测试
ssh 192.168.10.129
2.配置两台主机的远程连接实现免密登陆
一、生成密钥对
[root@localhost ~]# ssh-keygen -t RSA -b 4096
然后一直回车
ll /root/.ssh 查看
[root@localhost ~]# ll /root/.ssh
total 8
-rw-------. 1 root root 3401 Oct 15 19:27 id_rsa
-rw-r--r--. 1 root root 752 Oct 15 19:27 id_rsa.pub
二、发送公钥到要连接的服务器主机
[root@localhost ~]# ssh-copy-id -i 192.168.87.128
三、测试
[root@localhost ~]# ssh 192.168.87.128
[csj@localhost root]$