SSH
SSH是一种协议, 有多种的实现方法, 开源实现的OpenSSH, 也有商业版本.
加密的方式:
- 对称加密


对称加密的加密程度高, 很难破解, 一旦一个Client端的密钥被窃取, 那么整个系统的安全性就没有了.
- 非对称加密

私钥是Server端独有, 就算用户的登陆信息或者公钥在网络传输中被窃取, 也没有私钥进行解密, 保证了安全
中间人攻击

如何解决中间人攻击
问题在于Server如何对公钥进行认证, https中可以额通过CA进行公证, 但是SSH的公钥和私钥都是自己生成的, 没办法公正, 只能通过client端自己对公钥确认, 通常在第一次登陆的时候, 系统会出现以下的提示:
The authenticity of host 'ssh-server.example.com (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)?
之所以用fingerprint代替key,主要是key过于长(RSA算法生成的公钥有1024位),很难直接比较。所以,对公钥进行hash生成一个128位的指纹,这样就方便比较了。
如果被确认, 那么会将主机名添加到Client端的know_hosts文件中
免密登录

