可以拉Git回购,但不能推送



我刚刚生成了一个SSH密钥,并将其添加到Linux Mint终端中的SSH代理中。然后,我复制了.pub文件的内容,并粘贴到GitHub用户范围的SSH密钥框中。我呼叫git pull,它工作。我呼叫addcommit,一切似乎都很好。

但后来我打电话给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时,您将其放入每个存储库的部署密钥框中。Deploy密钥是设计用于在单个存储库上操作的SSH密钥,默认情况下它们是只读的。如果希望公钥是读写的,则在添加公钥时必须选中该框。这是因为在许多情况下,部署密钥仅用于部署代码,因此最好不要授予它们不需要的访问权限。不过,它们也可以用于其他机器操作,因此可以进行写访问。

由于您已经上传了它,您必须从GitHub中删除部署密钥并重新添加它,因为无法更改现有密钥的设置。当你重新添加它时,选中复选框,上面写着"允许写访问">

如果您打算为您的整个用户帐户而不仅仅是这个特定的存储库工作,那么您需要删除部署密钥条目,并将其上传到您的用户设置中。您必须首先删除部署密钥条目,因为同一个密钥只能用于一个目的,并且该密钥标识参与者(用户或部署密钥(和权限。

Specifically they say add the following to ~/.ssh/config
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa

https://stackoverflow.com/a/43054414/6521970

相关内容

最新更新