Git下载报错: Permission denied (publickey).问题解决

文章目录

  • 1、遇到问题
    • 1、现象1
    • 2、现象2
    • 3、现象3
  • 2、问题分析
  • 3、解决方案(针对github)
    • 1、生成是ssh key
    • 2、复制ssh key
    • 3、登录github
    • 4、new ssh key
  • 4、gitlab的解决方法
  • 5、注意的点
    • 1、替换https为ssh
    • 2、不同账号使用一个ssh key

1、遇到问题

1、现象1

      在我们的程序中进行下载的话,会出现permission denie(publickey),其实这个地方已经说明了问题,就是我们的公匙不对。
Git下载报错: Permission denied (publickey).问题解决_第1张图片

2、现象2

      在本地进行git clone的时候,通过小乌龟同样也会报这个错。

3、现象3

      我们尝试用ssh的方式连接一下github.com看一下,可以看到连接失败了,同样是permission denie(publickey) 的问题。
在这里插入图片描述


2、问题分析

      permission denie(publickey) 翻译过来就是公匙不对导致不能下载,我们知道通过ssh的方式去下载的话,是需要持有私匙和公匙,才能正常下载。

      这个地方提示的就是ssh key缺失的问题,那么有的小伙伴可能疑惑说,我明明配置了,为什么不能使用,其实我刚开始也是这么想的,但是忽略了一个问题,我要下载的包在github,而项目是存放在gitlab上的,这两个是不通用的。


3、解决方案(针对github)

1、生成是ssh key

在我们的 Git Bash here 打开的控制台上面进行命令操作:

  • 先输入ssh-keygen -t rsa -C "你的github账号"
  • 然后选择保存key的位置,基本就是默认C:/Users/admin/.ssh 目录下面的id_rsa文件(如果已经存在这个文件的话,可以选择其他位置)
  • 输入你的passphrase,这个应该可以理解为密码,正常我这边是直接回车,就是没有密码
  • 重新确认一下passphrase
  • 然后会生成你的rsa文件。

Git下载报错: Permission denied (publickey).问题解决_第2张图片

2、复制ssh key

      正常在你的C:User/admin/.ssh/ 目录下面会生成一个id_rsa_pub 的文件,用nodepad++或者文本工具将它打开,复制里面的字符串内容
在这里插入图片描述

3、登录github

      如果没有账号可以去注册一下,不知道github和gitlab是不是通用的,没试过。
Git下载报错: Permission denied (publickey).问题解决_第3张图片

4、new ssh key

      点击头像,选中Settings
Git下载报错: Permission denied (publickey).问题解决_第4张图片

      选择SSH and GPG key
Git下载报错: Permission denied (publickey).问题解决_第5张图片
      选择new ssh key
在这里插入图片描述
      把我们刚才复制的id_rsa_pub中的字符串粘贴到key对应的框中

Git下载报错: Permission denied (publickey).问题解决_第6张图片

4、gitlab的解决方法

      参考我的另一个文章:Go unkown reversion问题解决


5、注意的点

1、替换https为ssh

      这个没有尝试过没替换行不行,但是如果上面的步骤操作下来不成功的话,可以试一下。

      git在下载的时候使用的是http的方式而不是ssh的方式,所以这边会把前缀做一个替换。

      打开我们的C:\Users\admin.gitconfig文件做一个全局参数的编辑,加入下面的内容:

	[url "[email protected]:"]
	    insteadOf = https://github.com/

在这里插入图片描述
      在控制台也可以修改,可以参考我之前的git相关的文章说明

2、不同账号使用一个ssh key

      githubgitlab正常来说是两个不同的平台,我在github上面填写ssh key之后,本地之前的gitlab上对应的ssh key 不能使用了,感觉也是有点奇怪的说

      然后其实就是说保持githubgitlab 上填写的ssh key 一致就行了,就能够保证两个平台都可以访问

你可能感兴趣的:(Git问题解决,GO实践与问题解决)