如何解决可以拉取 Git 存储库但不能推送
我刚刚生成了一个 SSH 密钥并将其添加到我在 Linux Mint 终端中的 ssh-agent。然后我复制了 .pub
文件的内容并粘贴到 GitHub 用户范围的 SSH 密钥框中。我打电话 git pull
并且它有效。我打电话给 add
和 commit
,一切似乎都很好。
但后来我打电话给git push -u origin main
,我得到
ERROR: Permission to name/repo.git denied to deploy key
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解决方法
当您将生成的公钥上传到 GitHub 时,您将其放入每个存储库的部署密钥框中。部署密钥是设计用于在单个存储库上运行的 SSH 密钥,默认情况下它们是只读的。如果您希望密钥是可读写的,则必须在添加公钥时选中该框。这是因为在许多情况下,部署密钥仅用于部署代码,因此最好不要授予他们不需要的访问权限。不过,它们也可用于其他机器操作,因此可以进行写访问。
由于您已经上传了它,您必须从 GitHub 中删除部署密钥并重新添加它,因为无法更改现有密钥的设置。重新添加时,选中“允许写入访问”复选框。
如果您希望此功能适用于您的整个用户帐户,而不仅仅是此特定存储库,那么您需要删除部署密钥条目并将其上传到 your user settings。您必须先删除部署密钥条目,因为相同的密钥只能用于一个目的,并且密钥标识了参与者(用户或部署密钥)和权限。
,Specifically they say add the following to ~/.ssh/config
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。