git clone项目提示Permission denied (publickey)

2018年08月27日 | 1008

在windows装完git,然后clone 码云或者github的项目时出问题,报以下错误。

  Permission denied (publickey).
  fatal: Could not read from remote repository.

  Please make sure you have the correct access rights

  Permission denied (publickey).
  fatal: Could not read from remote repository.

  Please make sure you have the correct access rights123456789

出现这个错误很显然是ssh key的问题。我们只需要跟github官方的配置ssh的流程走一遍就行了。 考虑到一些童鞋看不懂,俺还是把流程描述一遍(当年俺也是不懂英文,没 有中文资料那个痛苦啊…)。

1.生成SSH Keys

如果已经生存了ssh key,那就可以跳过这一步了。可以用以下命令查看
ls -l ~/.ssh

ls -l ~/.ssh

如果出现id_rsa 和 id_rsa_pub 那就说明已经生成。

如果没有,按一下步骤生成
ssh-keygen -t rsa -C “your_email@example.com”

ssh-keygen -t rsa -C “your_email@example.com”

下面的步骤,可以一直都敲回车,如果对安全性要求很高,就自己输入密码吧。成功后,你会看到下面的提示:

# Your public key has been saved in /Users/you/.ssh/id_rsa.pub.# The key fingerprint is:# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com    Your identification has been saved in /Users/you/.ssh/id_rsa.# Your public key has been saved in /Users/you/.ssh/id_rsa.pub.# The key fingerprint is:# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.comYour identification has been saved in /Users/you/.ssh/id_rsa.123456789

2.Key 添加到ssh-agent

ssh-agent 貌似是对解密的专用密钥进行高速缓存。在windows 没有这一步,linux还需要手动添加到ssh-agent。首先确定ssh-agent是否启用

ssh-agent -s1

如果看到Agent pid xxxxx 那就说明已经启用

然后把私钥添加到ssh-agent就可以了。

ssh-add D:/phpstudy2018/PHPTutorial/WWW/yii/demo/id_rsa

执行ssh-add时出现Could not open a connection to your authentication agent	
	 
若执行ssh-add /path/to/xxx.pem是出现这个错误:Could not open a connection to your authentication agent,则先执行如下命令即可:
ssh-agent bash
然后再执行
ssh-add D:/phpstudy2018/PHPTutorial/WWW/yii/demo/id_rsa
即可

更多关于ssh-agent的细节,可以用 man ssh-agent 来查看
  1. 把公钥添加到自己的github或者码云

这个过程很简单,我简略写一下。依次进入settings–>ssh keys–>add ssh key 然后把你的公钥添加进这里就ok了。

找了许多解决方法都搞不定,最终还是按照github 官方的流程走通了。git 不是linux的亲儿子么,怎么在linux配置比其他平台还麻烦,不得不吐槽啊。。