我最近在 cloud9 (c9.io) 上建立了一个项目。当你在 cloud9 上建立一个项目时,有一个 .ssh 目录,里面有公钥和私钥。我假设这些是在您设置帐户时生成的。
创建 git 存储库后,我将源设置为 GitHub 上的空存储库并尝试将其推送到上游。正如预期的那样,我没有权限。
我复制了我的公钥的内容并将其添加到 GitHub。那时我能够推送到 GitHub。
我很好奇为什么 GitHub 只需要公钥。当我试图 push 时,幕后会发生什么?私钥的作用是什么?
最佳答案
私钥,顾名思义,是私有(private)的。它是你的,也是你的。您永远不应该将私钥提供给任何人。
您的私钥允许您签署消息。然后您发送带有签名的消息,任何拥有您的公钥的人都可以验证签名是否与消息匹配。这就是公钥密码学的原理。因此,Github 只需要您的公钥来检查您是否就是您所声称的那个人。
关于git - 为什么 GitHub 只需要我的公钥才能推送?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28479567/