定位:
简单说,SSH是一种网络协议,用于计算机之间的加密登录。
特征:
应用层;
用于远程登陆;
安全性协议;
数据(登录密码)加密传输;
使用RSA(非对称加密技术)算法加密;
使用22号端口;
加密的两种方式:
对称加密 == 密钥加密
非对称加密 == 公钥加密
对称加密:
指的是加密解密使用同一套密钥。
一个Server对于所有的Client使用一个相同的密钥。
因此,一旦密钥失窃,全系统的安全性堪忧。
非对称加密:
公钥加密后的密文,只能够通过对应的私钥进行解密。
公钥是在Server和Client之间存在传递的。
私钥属于Server独有,再需要私钥进行解密,Server才拿到真正的传输数据。
换言之,Client使用公钥加密,数据(登录密码)传输,Server使用私钥解密。
这体现了加密(公钥)解密(私钥)的非对称性。
SSH登录过程:
(1)远程主机收到用户的登录请求,把自己的公钥发给用户。
(2)用户使用这个公钥,将登录密码加密后,发送回来。
(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
第一次登录:
由于公钥是Server发过来的Client收到的,万一中间被拦截,并不能保证此公钥,对应的就是Client想登录的Server。此时,需要,人,手动确认。
这就是下图的背后原理:
同样也是Git需要SSH Copy的背后原理: