当我为Git设置我的计算机时,我会生成一个私有和公共SSH密钥。然后我让GitHub知道我的公钥是什么。我的理解是公钥可以加密消息,私钥对其进行解密。所以我可以理解github如何通过SSH向我发送加密消息。
然而,我的问题是,当我向GitHub推送时,它是如何知道我正在推动的?是不是其他人用我的名字和电子邮件创建了自己的SSH密钥,然后推送到我的GitHub存储库?
我怀疑是这种情况,那么为此采取了哪些安全措施?谢谢!
答案 0 :(得分:5)
GitHub有一个公钥副本,其中包含的信息不仅仅是您的姓名和电子邮件地址。它有一个独特的指纹,无法通过生成伪造的公钥来复制(至少没有大规模的暴力攻击或一些意想不到的数学突破)。
ssh协议的工作方式,GitHub看到一个ssh连接,它根据你的公钥进行身份验证。这样的连接只能由拥有私钥副本的人创建。
GitHub没有私钥的副本,但它可以验证您的私钥。 (这就是public key cryptography的全部内容。)