需要借助Xshell来管理阿里云服务器,SSH协议又是Xshell实现的基础,因此了解一下SSH协议。
SSH是一种网络协议,用于计算机之间的加密登录。如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。
SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现(Xshell工具免费版)。
中间人攻击
SSH之所以能够保证安全,原因在于它采用了公钥加密(创建密钥对的过程)。
整个过程是这样的:
(1)远程主机收到用户的登录请求,把自己的公钥发给用户。
(2)用户使用这个公钥,将登录密码加密后,发送回来。
(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
这个过程本身是安全的,
但是实施的时候存在一个风险:如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。因为不像https协议,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。
可以设想,如果攻击者插在用户与远程主机之间(比如在公共的wifi区域),用伪造的公钥,获取用户的登录密码。
再用这个密码登录远程主机,那么SSH的安全机制就荡然无存了。
这种风险就是著名的"中间人攻击"(Man-in-the-middle attack)。