首页 > 解决方案 > Git权限被拒绝(公钥),但公钥已添加并正在工作

问题描述

您好,我在使用时遇到问题,git push origin master或者git pull origin master因为我的远程源使用 SSH 连接,我已经设置了 SSH 密钥对配置,我也检查了这个解决方案,但它对我不起作用。为了测试连接,我在 Ubuntu 上发出了以下命令

ssh -T git@github.com

它显示以下消息

嗨赞恩!您已成功通过身份验证,但 GitHub 不提供 shell 访问权限。

如果我的身份验证正在使用 SSH 测试命令,我很困惑,那么为什么它不能与推送或拉取过程一起使用

错误如下

git@github.com:权限被拒绝(公钥)。致命:无法从远程存储库中读取。

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

标签: gitubuntugithubssh

解决方案


因为我在配置文件中映射了 ssh 密钥,所以我假设它正在加载正确的私有文件

确保您的远程 URL 实际上正在使用该 .ssh/config 条目和正确的私钥。

尝试:

GIT_SSH_COMMAND='ssh -Tv' git push

并查看使用的确切密钥。

如果你有一个 .ssh/config 像:

Host gh
  Hostname github.com
  User git
  IdentityFile ~/.ssh/mykey

您的网址应为:

gh:<me>/<myrepo>

加载正确的私人文件

只需要你的ssh-agent私钥是受密码保护的,与文件无关~/.ssh/config


推荐阅读