(可以不在同一个局域网)
PS:最近实在忙,没时间研究,只能用到什么,先记录下来
SSH
SSH是一种网络协议,用于计算机之间的加密登录,采用了公钥加密
GitHub 就是用SSH
1. 公开密钥加密
公开密钥加密也称为非对称加密,需要两个密钥,一个是公开密钥,另一个是私有密。其中一个密钥把明文加密后所得的密文,只能用相对应的另一个密钥才能解密得到原本的明文,由于加密和解密需要两个不同的密钥,故称为非对称加密。
原理:
(1)远程主机收到用户的登录请求,把自己的公钥发给用户
(2)用户使用这个公钥,将登录密码加密后,发送回来
(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录
2. 中间人攻击
如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户很难辨别真伪。因为不像https协议,SSH协议的公钥是没有证书中心(CA)公证的,也就是说,都是自己签发的。
如果攻击者插在用户与远程主机之间(比如在公共的wifi区域),用伪造的公钥,获取用户的登录密码,再用这个密码登录远程主机。
3. 公钥登陆
使用密码登录,非常麻烦,SSH 还提供了公钥登录,省去输入密码的步骤
原理:
用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。