0


解决git clone报错的多个问题

起因

原本是想看看Github上kubeedge的相关信息,所以就git clone下kubeedge,但是发现报错了,由此踩了无数的坑~
此文是已经解决了问题之后的回溯记录,有些参考的博客已经找不到了,有些查询网址也被我关掉了,部分信息后续如果找到的话会再补充进来。

git clone报错Permission denied (publickey)

在这里插入图片描述
查了之后发现是因为公钥有问题,所以就去github中查看了一下,路径

右上角头像 - Settings - SSH and GPG keys

,没有公钥,所以需要添加一个新的SSH key(图片是添加后截的)
在这里插入图片描述

SSH key的获取

我查看了下对应目录

mac上目录为:~/.ssh

,存在对应文件(因为我之前gitlab有生生成过对应密钥)
在这里插入图片描述
查看下对应密钥(⚠️ 此处有一个坑,后面讲)
在这里插入图片描述
将获取到的所有值添加到SSH key中
🐷 然后就 出现了新的问题
在这里插入图片描述

git clone报错kex_exchange_identification: Connection closed by remote host

看了很多博客,有一种方法可以取巧,使得成功拉取代码。但是,这种方法肯定是不行的(虽然没试,但是后续git push啥的应该还是会有同样的问题)

方法:将github中git clone中的ssh选择改为https,再clone(不推荐)

在这里插入图片描述

继续找博客,此时我恰巧看到添加SSH key时,邮箱收到邮件,告诉我 “这个key和gitlab上的一致了”。之后就考虑是key冲突导致的问题。
在这里插入图片描述

看到一个博客说的(查太多了,只保存了这句话,忘记博客地址了🤦‍♀️):

  • 如果GitLab和Github的注册邮箱是同一个邮箱,那么生成ssh keys就应该是同一个,可以直接配置到对应的GitLab和Github上可以直接使用,就没有冲突的问题了。
  • 如果GitLab仓库和Github仓库使用的不是同一个邮箱,那么由此生成的SSH keys也是不同的,这就造成了冲突。

所以说,有可能是 我gitlab和github用的邮箱不一致,导致两者冲突了。(我github很久之前是自己qq邮箱注册,gitlab是公司邮箱)

解决key冲突

因为我默认设置是gitlab的key,所以我现在只需要给github的key指定一个位置:

在~/.ssh目录下新增一个目录:mkdir githubssh
# 生成指定位置的key,需要注意邮箱为github的邮箱
ssh-keygen -t rsa -f ~/.ssh/githubssh/id_rsa.github -C "1*****[email protected]

在这里插入图片描述
然后查看一下对应的key
在这里插入图片描述
验证下是否正常:

ssh -T [email protected]

,按理说应该出现hi提示 ,但是没有。看了下,说是还要进行config配置,默认使用的还是gitlab的那个key,所以要指定github的key是新增加的那个目录
在这里插入图片描述

增加配置指向

~/.ssh

目录下新增并编辑一个config文件,里面内容是:

Host github.com
    HostName github.com
    IdentityFile ~/.ssh/githubssh/id_rsa.github

保存后查看下
在这里插入图片描述
再次验证下配置是否正确,成功了。
在这里插入图片描述
此时,将这个key加入SSH key,收到了如下邮件,按理说应该正常了
在这里插入图片描述
但是,又又出现了问题:ssh_dispatch_run_fatal: Connection to xx.xx.xx.xx port 22: Operation timed out
在这里插入图片描述
好吧,那就继续查找原因。

git clone报错ssh_dispatch_run_fatal: Connection to xx.xx.xx.xx port 22: Operation timed out

继续看博客,说是DNS可能有问题,我ping了下github,的确ping不通
在这里插入图片描述
然后我就需要在/etc/hosts下添加对应地址:

sudo vi /etc/hosts

我添加了这两条,但是具体还是要自己去查一下地址的(地址待我找到后更新),好像不一定一样:
151.101.1.194 github.global.ssl.fastly.net
140.82.114.3 github.com
hosts编辑完成后再ping,就成功了
在这里插入图片描述
以下就是皆大欢喜的时刻🌹,成功拉取
在这里插入图片描述

2023.04.04补充

今天想看一下开源的自动化测试框架时,发现从github上拉取代码失败,报如下的错误:
在这里插入图片描述
百度后发现,是github服务器升级,导致客服端known_hosts过期。
解决方法,删除/.ssh/known_hosts中github.com对应的记录,之后重新生成公钥并加入github中。
在这里插入图片描述

标签: git github

本文转载自: https://blog.csdn.net/Penguin_zlh/article/details/127279306
版权归原作者 Penguin_zlh 所有, 如有侵权,请联系我们删除。

“解决git clone报错的多个问题”的评论:

还没有评论