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

我正在使用终端,我在根,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.

当前回答

我想补充一些我的发现:

如果您正在使用GitBash,那么请确保SSH密钥存储在~/. SSH /id_rsa中。

默认情况下,git会搜索~/。ssh/id_rsaas ssh密钥的默认路径。

甚至文件名id_rsa也很重要。如果您将SSH密钥保存在另一个文件名或路径中,它将抛出Permission Denied(publickey)错误。

其他回答

这招对我很管用:

1-删除所有起源

git remote rm origin  

(参见https://www.kernel.org/pub/software/scm/git/docs/git-remote.html)

*remote: "管理你所跟踪的分支的存储库集合("remotes")。

*rm: "删除已命名的远程。所有远程跟踪分支和远程配置设置都被删除。”

2-检查所有已删除:

git remote -v  

3-添加新的产地主

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

这就是所有的朋友们!

我在远程主机上使用git pull寻找类似错误消息的解决方案时发现了这个页面:

$ git pull
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我通过ssh -AY remote_hostname从本地计算机连接到远程主机。这不是OP问题的解决方案,但对其他遇到这个页面的人很有用,所以把它贴在这里。

注意,在我的例子中,git pull在我的本地机器上工作良好(也就是说,ssh密钥已经设置,并添加到GitHub帐户等)。我通过将这个添加到~/来解决我的问题。Ssh /config在我的笔记本电脑:

Host *
     ForwardAgent yes

然后我用ssh -AY remote_hostname重新连接到远程主机,git拉现在工作了。配置中的更改允许将我的ssh对从本地计算机转发到任何主机。ssh的-A选项实际上是在ssh会话中转发它。点击这里查看更多细节。

我也遇到了这个问题,因为我使用了几个GIT帐户,以及工作和大学的不同帐户,这对我来说很有效:

->进入您的SSH配置

cd ~/.ssh/
vim config

->复制下面的块,并填写您想要推送到/with的主机和用户

Host [Hostname]
User [User]
PubkeyAcceptedAlgorithms +ssh-rsa
HostkeyAlgorithms +ssh-rsa

我得到这个问题的几个主机名,所以现在我有几个这些配置在我的ssh配置文件。

我在'git push'期间得到相同的错误。在客户端,我有两个起源和主人。我拿掉了一个,然后它就正常工作了。

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

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

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