起因
原本是想看看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
ssh-keygen -t rsa -f ~/.ssh/githubssh/id_rsa.github -C "1*****9@qq.com
然后查看一下对应的key 验证下是否正常:ssh -T git@github.com ,按理说应该出现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,就成功了 以下就是皆大欢喜的时刻🌹,成功拉取
|