git远程数据库的创建方法
在日常工作中想将已经创建好的git本地数据库上传到github的远程数据库中,具体操作方法暂记如下。
在本地创建SSH Key
首先我们先来了解一下什么是ssh?简单来说ssh就是一种网络协议,用于计算机之间的加密登录。
要想将本地数据库从本地计算机上传到github上的远程数据库上,那么就需要使用SSH这种协议,使用ssh协议登录另一台远程计算机是安全的,因为它将登录信息进行了加密,这样即使中途被截获,密码也不会泄露。它的具体工作过程是这样的,
(1)远程主机收到用户的登陆请求,把自己的公钥发给用户,
(2)用户用这个公钥把登陆密码加密以后再发送回去
(3)远程主机用自己的私钥解锁登陆密码,要是密码正确,就同意登录
通过上面的流程我们对SSH的工作机制有了一个简单的了解,那么这种工作方式是否有风险呢?答案是肯定的,如果有人截获了登录请求,然后冒充远程主机,将伪造的公钥发给用户,那么用户无法分辨真假,因为SSH协议的公钥不像https协议,它是没有证书中心(CA)公证的,都是自己进行签发,用户将自己的登陆密码发给了冒充的远程主机,冒充的远程主机再用这个密码登录真正的远程主机,那么SSH的安全机制就荡然无存了。这就是著名的中间人攻击----Man-in-the-middle attack。
但是中间人是如何获得远程主机的公钥的呢?它发给用户的伪造公钥如何做到和真正的公钥一样呢?
中间人的公钥不必与远程主机的公钥一样