1、本地创建SSH key pairs
2、把public key上传到网站服务器(如GitHub
3、当使用ssh方式连接时
- 本地SSH client向远端请求ssh连接
- 远端发来random data要求加密
- 本地ssh client用private key加密,把加密的data发送过去(不发送private key
- 远端接收到这个data,并用你的public key去validate,通过就说明是你
这里面有两点关键
1、加密后的data无法被逆向工程出private key,所以这个被网络中间窃听到也没关系
2、public key只能validate这个加密后的data是不是由对应的private key产生的,但并不能生成相同的加密data。因此别人有你的public key也啥都干不了