错误记录: git 无法连接到github
今天, 新建了一个github
仓库, 但从本地怎么都push
不上去.并报错
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.Please make sure you have the correct access rights
and the repository exists.
于是开始尝试各种方法.
一开始尝试重新创建添加ssh公钥
.
详见github官方文档
然后按照github troubleshooting-ssh进行了ssh
的连接测试.
报错, 大概是这样(这个不是我的报错)
Permissions 0777 for '/Users/username/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
按照stackoverflow上的回答的进行了文件权限的修改. 使ssh
连接测试可以通过了.
然而,git
依然连接不上.
后来我尝试启动ssh-agent
, 分表用git-bash
和powershell
开启了ssh-agent
,并运行了ssh-add
命令. 这次成功了. 从其他的terminal
也可以正常push
, 我执行taskkill /f /im ssh-agent.exe
杀掉所有ssh-agent
之后, 依然可以正常执行.
不解. 删掉新建的各种key pair
之后, 决定重新创建key pair
, 重走一遍流程. 然而这次又不行了.
这次的表现依然是, ssh -T git@githb.com
可以正常连接, 但是git
无法连接.
我不禁怀疑, 它们用的是两套.ssh路径
.
然后在这篇回答的评论中, 找到了调试git
调用ssh
的方法.
按照这种方法, 调试之后, 果然, 用的是两套路径.
在git
调用ssh
的时候, 环境中添加了一个名称为HOME
的环境变量. 如这个回答所言.
最终问题解决了. 无需用到ssh-agent
服务
然而, 为解决的两个问题是:
- 为什么之前可以用, 现在忽然就不能用了, 是我在什么时候修改了什么配置导致的?
git
为什么在调用ssh
的时候, 会添加HOME
环境变量, 该值是git
从哪里获取的?