问题描述:Github push 成功,但是新建的库无法clone,一直报告git@github.com: Permission denied (publickey).
刚开始使用时,本地新建了一个SSH,然后绑定到了github上,并且也把本地的库push到GitHub同步成功。但是在github上新建的库却一直clone不下来。
我们可以根据以下几个步骤来确定问题所在:
1. 运行 $ ssh -T git@github.com
正常情况下应该显示:
但是在我的电脑上却显示:git@github.com: Permission denied (publickey).
2. 确定SSH存在,如果不存在则创建一个并绑定到github
确认您的私钥已生成并加载到 SSH。 如果使用的是 OpenSSH 6.7 或更早版本:
# 在后台启动 ssh-agent
$ eval "$(ssh-agent -s)"
> Agent pid 59566$ ssh-add -l
> 2048a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d/Users/you/.ssh/id_rsa (RSA)
如果使用的是 OpenSSH 6.8 或更新版本:
# 在后台启动 ssh-agent
$ eval "$(ssh-agent -s)"
> Agent pid 59566
$ ssh-add -l -E md5
> 2048MD5:a0:dd:42:3c:5a:9d:e4:2a:21:52:4e:78:07:6e:c8:4d/Users/yo
3.也可尝试连接 git@github.com 来检查使用的密钥:
在该示例中,我们没有任何密钥供 SSH 使用。 "identity file" 行末的 "-1" 表示 SSH 找不到可使用的文件。 后面的 "Trying private key" 行也表示未找到文件。 如果文件存在,这些行将分别是 "1" 和 "Offering public key":
这里我发现了一个问题,我创建了一个SSH用来push一个库到github,但是clone库下来的时候,git却找了另外一个隐藏的SSH。
我们运行$ls -ah 查看所有隐藏的文件,发现还有一个.ssh的文件夹
运行$cd .ssh
运行$cat id_rsa.pub
拷贝SSH并添加新的SSH Key到github上,重新运行clone命令就可以了