您好,我在使用 git push origin master
或 git pull origin master
时遇到问题,因为我的远程源正在使用 SSH 进行连接,我已经设置了 SSH 密钥对配置我还检查了 this 解决方案,但它不适合我。为了测试连接,我在 Ubuntu 上发出了以下命令
ssh -T git@github.com
并显示以下消息
<块引用>嗨,赞恩!您已成功通过身份验证,但 GitHub 未通过 提供外壳访问。
我很困惑,如果我的身份验证使用 SSH 测试命令,那么为什么它不能使用推或拉过程
错误如下
<块引用>git@github.com:权限被拒绝(公钥)。致命:无法读取 来自远程存储库。
请确保您拥有正确的访问权限和存储库 存在。
答案 0 :(得分:1)
因为我在配置文件中映射了 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
文件无关
.