Git推送权限被拒绝(公钥),但已成功通过身份验证

Ham*_*ian 5 git ssh github

我想用ssh将提交推送到github。我懂了

您已成功验证

运行ssh -T git@github.com命令后显示一条消息,但是当我要推送提交时,出现此错误:

权限被拒绝(公钥)。致命:无法从远程存储库读取。

请确保您具有正确的访问权限,并且存储库存在。

我运行ssh-add -l命令,我得到

4096 SHA256:SREQ0/2G0mT+UxUmpLWmkMramBcFxnl+onFyXgwFENk ~/.ssh/work2_rsa (RSA) 4096 SHA256:gKPZ1Hxzc6eZ/NsgnoPaJsGbdWgQV54bYAXaTym3PfY ~/.ssh/work3_rsa (RSA)

我跑步git remote -v,我得到

origin  git@github.com:H-Ghadirian/UdacitySillySong.git (fetch)
origin  git@github.com:H-Ghadirian/UdacitySillySong.git (push)
sillySong   git@github.com:H-Ghadirian/UdacitySillySong.git (fetch)
sillySong   git@github.com:H-Ghadirian/UdacitySillySong.git (push)
Run Code Online (Sandbox Code Playgroud)

我读了这篇文章。它与我的问题非常相似,但sudo没有解决我的问题。

我也跑了git push -u origin master,得到同样的错误:

权限被拒绝(公钥)。

我还阅读了权限被拒绝(公钥)。致命的:远端意外挂起git pull,但是我的公钥在.ssh文件夹中,多数民众赞成在我的情况下

我读了此页:错误:权限被拒绝(公钥),并选中所有。我错过了什么?

我该怎么办?

MacOS:Sierra

git版本 2.13.5(Apple Git-94)

由于此链接描述,我添加config文件到我的.ssh文件夹并添加

Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/work2_rsa
Run Code Online (Sandbox Code Playgroud)

对此。

Von*_*onC 3

首先检查git remote -v返回什么:

  • 它必须是您拥有的回购协议或者您是其合作者
  • 它需要是正确的ssh url (而不是像您昨天问题中那样的git@github.com:<you>/<yourRepo.git>
    https 网址)

需要明确的是,您需要首先在 GitHub 上创建远程存储库:推送到不存在的存储库会生成该错误。

通常,ssh url 不起作用意味着该 URL 未按照 ssh 期望的方式编写。
并且 ssh 可能需要不同的 URL,因为 .sshconfig文件中存在 ssh 文件~/.ssh/config

sudo多次运行命令并检查存储库。

您没有ssh git@github.com使用 sudi 运行您的系统,这意味着您也不需要sudo推送命令。