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

时间:2017-09-23 19:05:34

标签: git github ssh

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

  

您已成功通过身份验证

运行ssh -T git@github.com命令后的

消息,但是当我想推送我的提交时,我收到此错误:

  

权限被拒绝(publickey)。   致命:无法从远程读取   库中。

     

请确保您拥有正确的访问权限和存储库   存在。

我运行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)

我读了this post。它与我的问题非常相似,但sudo并没有解决我的问题。

我也运行git push -u origin master并得到同样的错误:

  

许可被拒绝(公钥)。

我也读过Permission denied (publickey). fatal: The remote end hung up unexpectedly for git pull,但是我的公钥是在.ssh文件夹中,那不是我的情况

我读了这页:Error: Permission denied (publickey)并检查所有内容。我错过了什么吗?

我该怎么办?

MacOS :Sierra

git version 2.13.5(Apple Git-94)

正如this link所述,我将config文件添加到我的.ssh文件夹并添加

Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/work2_rsa

到它。

1 个答案:

答案 0 :(得分:2)

首先检查git remote -v返回的内容:

  • 它必须是您拥有的回购或您是
  • 的合作者
  • 它必须是正确的 ssh 网址git@github.com:<you>/<yourRepo.git>
    (而不是https like in your question yesterday

为了清楚起见,您需要首先在GitHub上创建远程仓库:推送到不存在的仓库会产生该错误。

通常情况下,ssh url无法正常工作意味着所述URL不会按照ssh所期望的方式编写 由于config中的ssh ~/.ssh/config文件,ssh可能会有不同的网址。

  

我使用sudo运行命令并多次检查回购。

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