我使用 GnuPG(按照 Github 的说明)生成了一个公钥/私钥对,并在尝试将我的提交推送到新创建的存储库时出现以下错误:
git push origin master
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我之前使用 ssh keygen 命令为远程服务器设置了 SSH 密钥,这可能与我的 git 冲突,尽管 github 文档告诉我要在配置中指定 OpenPGP 密钥。SSH 密钥对位于~/.ssh
名称id_rsa
和下的文件夹中id_rsa.pub
。
知道可能出了什么问题吗?
答案1
GnuPG 和 SSH 在 git 环境中服务于不同的用途:
- SSH 用于通过加密来保护连接,同时还提供身份验证(从而允许访问存储库)。
- 另一方面,GnuPG 允许您对提交和标签/发布进行签名。这可让其他人确保提交确实是由您而非其他人发出的。
换句话说:如果您没有在 Github 注册您的公共 SSH 密钥,或者没有在那里删除它,那么您将无法访问该存储库。~/.ssh/id_rsa.pub
在 Github 上添加文件内容以通过 git 恢复访问权限。