git clone出现Permission denied (publickey)解决办法

时间:2021-04-26 16:41:20

一、错误

git clone git@gitee.com:wangzaiplus/xxx.git, 出现Permission denied (publickey)

二、原因

无权限, 未将公钥添加至GitHub

三、解决思路

  • 本地生成密钥
  • 登录GitHub配置SSH Key

四、具体步骤

  1. ssh-keygen.exe -t rsa -C "xxx@163.com"
  2. 三次回车, 即生成私钥和公钥, 生成目录为: /c/Users/wangzaiplus/.ssh
  3. cat ~/.ssh/id_rsa.pub, 复制公钥
  4. 登录GitHub, Settings -> SSH and GPG keys -> New SSH Key, 将上一步公钥粘贴至文本框, 保存, 搞定

五、说明

  1. 提示: Enter file in which to save the key (/c/Users/wangzaiplus/.ssh/id_rsa)
  • key生成的保存路径
  • 括号路径是key默认保存路径, 如果之前生成过别的项目的key, 则会覆盖
  1. 提示Enter passphrase
  • 如果填写, 则提交项目时需要输入密码, 我们这里不输入密码

六、拓展

多Git账户生成多个id_rsa私钥保存路径冲突问题解决办法

  1. 四.1步回车后, 重命名id_rsaid_rsa_springbootid_rsa_project1

  2. 此时/c/Users/wangzaiplus/.ssh/目录下生成文件如下

  • id_rsa_springboot
  • id_rsa_springboot.pub
  • id_rsa_project1
  • id_rsa_project1.pub
  1. 新建config文件, 注意, 无扩展名, 内容如下
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa_springboot Host gitee.com
HostName gitee.com
User git
IdentityFile ~/.ssh/id_rsa_project1
  1. 再把对应的公钥添加至对应的网站上面即可, 如GitHub, gitee

  2. 说明: 未加入配置文件的网站会自动应用/.ssh目录下的id_rsa