前言
引起该报错的原因有很多种,具体需要看控制台的输出(一般看该行报错的前面报错行)。然后具体问题具体分析。可能是ssh引起的,也有可能是仓库本来就不存在等等。
本文主要解决由于ssh引起的报错。
注意:
- 文章中提到的.ssh文件夹在C:\Users\86177文件夹下(具体看个人电脑)。该文件夹下有如下文件:
- 文章中提到的ssh有关的命令在cmd可能不能使用,推荐使用git bash。
具体报错情况
这个报错的原因是没有在自己远程的github下设置ssh key。
此时如果执行ssh -T git@github.com,也会报相同的错误。
解决办法
1. 生成ssh key
ssh-keygen -t rsa -C "xxx@example.com"
注意:
- "xxx@example.com"是注册github的邮箱。
- 如果遇到需要输入密码的情况,不用管,一路回车即可。
2. 将ssh key写入id_rsa
ssh-add ~/.ssh/id_rsa
注意,可能报错:
解决办法:先执行eval `ssh-agent -s````。再执行ssh-add ~/.ssh/id_rsa```。
3. 将生成的ssh key加入github中
- 复制id_rsa.pub的内容。id_rsa.pub文件可能打不开,可以使用复制命令:
clip < ~/.ssh/id_rsa.pub。 - 登录github,将ssh key加入到github中(位置如下)。点击New SSH Key(title可以随便填)。
6. 验证ssh key
ssh -T git@github.com
执行ssh -T git@github.com时可能遇到的几种报错
报错一
此时,如果执行npm install会报如下的错误:
原因:.ssh文件夹下没有known_hosts文件。
解决办法:执行ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts。
报错二
此时,如果执行npm install会报如下的错误:
原因:
id_rsa.pub文件中key和known_hosts文件中的key不一致。(为了模拟报错,我手动把known_hosts中key改变,此时要改变key的后几位,改变前几位模拟不出这个错误)。
解决办法:
1、删除已有known_hosts文件。可以去直接.ssh文件夹下删除。也可以使用指令ssh-keygen -R github.com。
2、执行ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts。
另外的解决办法
网上还提供了另外一种解决办法,我试过,是失败的。但是还是介绍一下,具体如下:
- 先执行
git config --global http.sslverify "false"。作用是取消ssl认证。 - 如果npm install依然报错,再执行
git config --global url."https://".insteadOf git://。