git clone远程GitHub仓库代码出现“Permission Denied (publickey)”问题
前言
尝试使用本地的Git Bash输入git clone [email protected]:JavaCore-Item.git命令行下载github代码至本地时失败,爆“Permission Denied (publickey)”问题。
clone下载代码,需要依赖SSH key。当权限不足时,多是SSH key失效或者SSH key不存在造成的,这时重新创建SSH key就可以解决问题。
解决方法
1、检查SSK Key是否存在
本地启动git bash,输入“ls ~/.ssh/”命令
-
如果存在,则会出现:id_rsa id_rsa.pub known_hosts
-
如果不存在,则执行下一步。
2、生成SSH Key
-
进入根目录:C:\Users\HL\.ssh;
-
启动Git Bash,依次执行以下命令:
-
【1】$ git config --global user.name 你的github登录名
-
【2】$ git config --global user.email 你的邮箱地址
-
【3】$ ssh-****** -t rsa -C 你的邮箱地址
3、执行成功,则出现
-
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/***/.ssh/id_rsa):
-
***表示你自己的当前登录用户名,不做修改直接回车,会将生成的rsa文件保存为默认名称
一路回车即可。 -
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
提示设置提交/l拉取代码到Github时需要的密码及确认密码;
设置密码后再次回车提示Your identification has been saved in.... 即表示ssh key生成成功;
4、测试联通性
- 生成key秘钥后,可以测试下github的连通性;
-
执行命令:$ ssh -T [email protected],或$ ssh [email protected]
- 如果ping不同gitHub仓库,可执行下面命令:
-
$ ssh-agent -s;或$ ssh-add ~/.ssh/id_rsa
5、添加ssh key至guthub
进入github账户设置中心:
点击右上角,NEW SSH key:
上图所示,自定义填写一个Title,然后关键来了。
key即前边步骤生成的ssh key,进入C:\Users\HL\.ssh 文件夹下,找到id_rsa.pub,打开复制文件内容,填入此key输入框处,点击保存即可。
6、clone远程分支代码
clone分支代码,具体操作不再赘述。方式有两种:【1】使用git bash,本地命令行“git clone [email protected]:[你的github登录名]/[仓库项目名称.git]”拉取即可;【2】IDEA中输入分支项目的地址,clone代码即可。