有人看到这个错误并知道该怎么做吗?

我正在使用终端,我在根,GitHub存储库存在,我不知道现在该做什么。

> git push -u 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.

当前回答

我得到了这个错误。原来我刚刚将OSX升级到Sierra,我的旧密钥不再注册了。

一开始我以为是“升级到macOS Sierra会破坏你的SSH密钥并将你锁在自己的服务器之外”

但我避开了这个问题。结果我只需要重新注册我现有的密钥:

ssh-add - k

然后输入密码…完成了!

其他回答

确保SSH -add -l显示存在于Github帐户的SSH密钥列表中的SSH密钥的指纹。

如果输出为空,但你知道你有一个与你的github帐户一起使用的私有SSH密钥,在这个密钥上运行SSH -add(在~/. SSH中找到。默认情况下,它被命名为id_rsa,因此您可能会运行ssh-add id_rsa)。

否则,按照下面的说明生成SSH密钥对。

如果您已经创建了SSH密钥,但仍然报错,这是因为您需要给用户读写要克隆到的文件夹的权限。sudo chmod 777 <your_folder_name_here>"。 当然,这是在生成SSH密钥之后,仍然会得到这个错误。希望这对未来的用户有所帮助。

Edit

如果你使用git bash,在Windows中使用admin来添加

这种情况会发生在创建存储库后遵循GitHub指示时。Git将指示您使用以下内容添加遥控器。

Git远程添加源git@github.com:<用户>/<项目>.git

将<>中的内容替换为与您的帐户相关的值。

解决方案是删除.git后缀。添加遥控器的操作如下:

Git远程添加origin git@github.com:<用户>/<项目>

设置SSH访问GitHub的完整步骤已经发布在ServerFault上。

查看来自@Alex的答案:https://serverfault.com/a/1088209/416091

在2022年7月24日,我应该在SSH用户配置文件(~/. SSH /config)中将服务器和端口设置为SSH .github.com:443。

是的,我也有这个问题:/我要把我的项目推到Github的HTTP类型(不是SSH类型)。每次推送时我都必须输入用户名和密码。 因此,首先我输入了与以下类型相关的代码

git remote add origin git@github.com:YOUR-GIT/YOUR-REPO.git

我得到了

git@github.com:拒绝权限(publickey)。 无法从远程存储库读取。

因此,我通过以下方法解决了我的问题

Git远程rm来源删除你的Git远程存储库 Git远程现在检查您的远程存储库是否已被删除

网址= https://github.com/<username>/<repository>.git

再次添加您的URL,使远程存储库 Git push -u origin master 您可以将内容推送到远程存储库。在这里,当你在命令中使用"-u"时,你创建了一个跟踪分支,并且在远程存储库中的跟踪分支的帮助下,你不会告诉git你在接下来的步骤中推送哪个分支:) 如果你使用linux, git会在推送内容前询问用户名和密码。并提供你的相关证书。

为了防止在每次推送中提供用户名和密码,您必须更改git配置

对于列出你的git配置- git config——global——list 你会看到

user.name=<your_username>
user.email=<your_email>

所以你必须添加证书。Helper属性添加到git配置中 这个

5.Git配置——global——添加证书。助手存储将此添加到您的终端 现在你可以添加新的项目到你的文件,然后git add., git commit -m "<message>", git push 现在git也会要求你的用户名和密码,这将是最后一次。下一个git推送git不会向你请求用户名和密码:)