ssh加密通讯机制

Linux系统 0 819 李艳青 收藏

ssh是linux主机中常用的一个服务(协议),跟rsh等协议相比,它的加密通讯机制更加安全,那么两台主机之间是如何通过ssh做到安全加密通讯的呢?


1. 建立公钥和私钥

linux机器上启动SSHD服务时,该服务会主动去/etc/ssh/ssh_host*文件(公钥和私钥文件)。

如果是新装系统,不存在这些文件,SSHD服务则会主动计算公钥文件,同时也会计算出服务器自己需要的私钥文件。

1.jpg

2. 服务器ssh连接

服务器B想要通过ssh的方式连接服务器A,它首先要发出询问。 

2.jpg

3. 服务器白名单和黑名单

 服务器A查询自己的/etc/hosts.allow和/etc/hosts.deny文件。

如果服务器B在自己的/etc/hosts.allow里面,或者既不在etc/hosts.allow也不在/etc/hosts.deny里面,那么就允许服务器B连接。

3.jpg

4. 公钥传送

服务器A确定可以允许服务器B连接,于是将自己的公钥传送给服务器B。

4.jpg

5. 公钥对比和保存

服务器B会尝试把接收到的服务器A公钥数据保存到自己的~/.ssh/known_hosts里面,如果该公钥数据已经记录过,服务器B则会对比此次接收到的公钥跟之前保存的公钥是否一致。

5.jpg

6. 公钥反向传送

收到回应后,服务器B会把自己的公钥反向传输给服务器A。 

6.jpg

7. 公私钥兼备

 这样,服务器A和B就分别拥有的自己的私钥和对方的公钥,双方形成可以相互信任的机制。

7.jpg

8. 加密通讯

服务器A和服务器B通过ssh通讯的时候,可以采用对方的公钥加密数据,数据传送到对方后,对方可以采用自己的私钥解密。

这样数据传输过程中都是加密状态,就保证了数据传输的安全。

8.jpg



相关推荐:

网友留言:

您需要 登录账户 后才能发表评论

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
验证码