你好,我面临使用git push origin master
或git pull origin master
的问题,因为我的远程源使用SSH进行连接,我已经设置了SSH密钥对配置。我也检查了这个解决方案,但它对我不起作用。为了测试连接,我在Ubuntu 上发出了以下命令
ssh -T git@github.com
并显示以下消息
嗨,zain!您已成功通过身份验证,但GitHub没有提供外壳访问。
我很困惑我的身份验证是否与SSH测试命令一起工作,以及为什么它不与推或拉过程一起工作
后出现错误
git@github.com:权限被拒绝(公钥(。致命:无法读取来自远程存储库。
请确保您拥有正确的访问权限和存储库存在。
因为我在配置文件中映射了ssh密钥,所以我认为它正在加载正确的私有文件
确保您的远程URL实际上使用了.ssh/config条目和正确的私钥。
尝试:
GIT_SSH_COMMAND='ssh -Tv' git push
看看到底用了什么钥匙。
如果你有一个.ssh/config,比如:
Host gh
Hostname github.com
User git
IdentityFile ~/.ssh/mykey
您的URL应该是:
gh:<me>/<myrepo>
加载正确的私有文件
仅当您的私钥受密码短语保护时才需要ssh-agent
,与~/.ssh/config
文件无关.