SSH的原理与运用

一、早期的计算机

早期计算机之间的连接,都是使用明文传输的方式,比如ftp协议、telnet协议等等。

这种方式很不安全,很容易被截获,从而获取用户的登录名和密码。

二、SSH来了

为了解决安全问题,SSH横空出世。SSH传输过程中,数据全程加密,并使用两种验证方式保证传输的安全。

1、基于口令的安全验证。

当用户要登陆一台远程主机,以登陆srb.w3cs.site为例。

用户输入 ssh user@host,即 ssh [email protected]

但是,如何保证用户登陆的就是 srb.w3cs.site主机呢,如何保证不是其他主机伪装的呢?

当用户第一次登陆的时候,用户会收到这样的提示:

$ ssh root@srb.w3cs.site

The authenticity of host ‘host (12.18.429.21)’ can’t be established.

RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.

Are you sure you want to continue connecting (yes/no)?

服务器将自己的公钥指纹发送给想连接的主机,告诉主机:“这是我的指纹,你看看对吗?对的话你就输入yes连接,不对的话你就输入no放弃连接。”这样就保证了数据连接的安全性。

如果点了yes,这台主机就被放在了.ssh文件夹下的known_hosts文件中,下次就不用重复确认了。

上面,主机接受了srb.w3cs.site的公钥。

接下来,用户输入登陆密码,利用接受的服务器公钥来加密密码,将加密的密码发送给服务器,服务器用自己的私钥,解密密码。如果密码正确,允许登陆。否则,拒绝登陆。

2、基于公钥的安全验证。

1、用户将自己的公钥放在服务器上。

2、服务器向客户机发送一段随机字符串。

3、客户机利用自己的私钥对随机字符串进行加密,发送给服务器。

4、服务器利用事先存储的公钥解密,解密出来正确,允许登陆,否则,拒绝登陆。

你可能感兴趣的:(SSH的原理与运用)