总结一下,出现这个问题原因是clone的时候需要使用一个公钥和本地的私钥来做身份认证。
1、首先确认自己有没有git帐号
2、有的话,生成一对公私钥对,公钥上传到github,私钥需要添加到本地的私钥列表
具体步骤如下所示:
用 git clone 时出现错误:
Permission denied (publickey).
上网搜了一下, 原因是'You've probably not added a public key to your SSH keys.'
解决方法如下:
用下面的命令生成public key
$ ssh-keygen -t rsa
复制 public key (id_rsa.pub) 到你账户的list of SSH keys, 再重新运行clone命令
如果还不行,执行下面的分析步骤:
1、首先尝试重新添加以前生成的key,添加多次,仍然不起作用。
2、使用命令 ssh -v git@github.com测试,最后几行结果如下:
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/gr/.ssh/id_rsa
debug1: Trying private key: /home/gr/.ssh/id_dsa
debug1: Trying private key: /home/gr/.ssh/id_ecdsa
debug1: No more authentication methods to try.
Permission denied (publickey).
3、分析:尝试了3个private key,但都没有成功,最后是导致Permission denied.
4、查看我的密钥, ls ~/.ssh/ :
bajie bajie.pub known_hosts
5、发现我的id_rsa文件我命令为bajie, 所以根本没有使用它。同时可以使用如下命令查看密钥列表:
ssh-add -l
6、上面命令的密钥列表为空,所以要添加我的密钥,使用命令:
gr@grpc:~/workspace/git/home$ ssh-add ~/.ssh/bajie
Enter passphrase for /home/gr/.ssh/bajie:
Identity added: /home/gr/.ssh/bajie (/home/gr/.ssh/bajie)
7、再次查看,如下,添加成功:
gr@grpc:~/workspace/git/home$ ssh-add -l
2048 63:c5:d8:6c:a0:0c:a8:9c:26:d8:f8:95:de:29:04:eb /home/gr/.ssh/bajie (RSA)
8、再使用ssh -v git@github.com测试连接,可以看到验证通过:
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1:Offering RSA public key: /home/gr/.ssh/bajie
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1:Authentication succeeded (publickey).
Authenticated to github.com ([192.30.252.129]:22).
9、最后git clone项目成功。