一、ssh的建立原理
ssh远程连接
作用:远程端的主机基于网络通过标准的远程协议远程登录到对应的主机,类似于直接在本地端操作
应用层和传输层之间连接SSL/TLS安全认证层(SSL握手协议 SSL记录协议)
? ? ? 身份伪装
? ? ? 信息泄露
? ? ? 信息改
对称密钥:
加密和解密用的同一密钥(安全性较低,执行效率较高)---数据传输
非对称密钥:
公钥--数据加密 私钥--数据解密(安全性较高,执行效率较低)---握手阶段
ssh连接的原理过程:
1.版本协商阶段:客户端向服务端发起TCP初始连接请求,客户端收到服务端的请求,建立连接,向客户端发送报文,客户端收到报文后,解析该数据包,决定使用谁的版本协议号;之后,客户端回应服务端决定使用的版本号,服务器比较客户端发送的版本号,决定是否一起工作,协商成功后进入密钥算法协商阶段,否则断开TCP连接?。
2.服务器传送公钥给客户端: 接收到客户端的要求后,服务器便将第一个步骤取得的公钥传送给客户端使用 (此时应是明码传送,反正公钥本来就是给大家使用的)。
3.客户端记录并比对服务器的公钥数据及随机计算自己的公私钥: 若客户端第一次连接到此服务器,则会将服务器的公钥记录到客户端的用户家目录内的 ~/.ssh/known_hosts 。若是已经记录过该服务器的公钥,则客户端会去比对此次接收到的与之前的记录是否有差异。若接受此公钥, 则开始计算客户端自己的公私钥。
4.回传客户端的公钥到服务器端: 用户将自己的公钥传送给服务器。此时服务器:具有服务器的私钥与客户端的公钥,而客户端则是: 具有服务器的公钥以及客户端自己的私钥,你会看到,在此次联机的服务器与客户端的密钥系统 (公钥+私钥) 并不一样,所以才称为非对称加密系统。
5.开始双向加解密: (1)服务器到客户端:服务器传送数据时,拿用户的公钥加密后送出。客户端接收后,用自己的私钥解密 (2)客户端到服务器:客户端传送数据时,拿服务器的公钥加密后送出。服务器接收后,用服务器的私钥解密,这样就能保证通信安全。
ssh连接的过程:
?二、配置两台主机的远程连接实现免密登陆
主机A:192.168.114.138
主机B:192.168.114.147
第一步:生成密钥对
[root@A ~]# ssh-keygen -t RSA
?
[root@A ~]# cd /root/.ssh/
[root@A .ssh]# ll
total 8
-rw-------. 1 root root 2590 Oct 15 04:43 id_rsa
-rw-r--r--. 1 root root 560 Oct 15 04:43 id_rsa.pub
第二步:发送公钥到要连接的另一个主机
[root@A .ssh]# ssh-copy-id -i 192.168.114.147
第三步:测试
从主机A连接主机B
[root@A .ssh]# ssh 192.168.114.147
|