github域名与IP变更导致无法推送分支问题的解决

问题

当执行推送命令的时候,出现如下错误:

$ git push fork my_branch

bash 复制代码
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for github.com has changed,
and the key for the corresponding IP address 20.205.243.166
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:uNiVztksCsDh.....
Please contact your system administrator.
Add correct host key in /Users/kemix/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/kemix/.ssh/known_hosts:5
RSA host key for github.com has changed and you have requested strict checking.
Host key verification failed.
fatal: 无法读取远程仓库。

请确认您有正确的访问权限并且仓库存在。

问题分析

刚开始以为是ssh key的问题,通过命令重新生成了

$ ssh-keygen -t rsa -b 4096 -C "我的邮箱"

然后在github上重新添加新的rsa公钥"id_rsa.pub",依旧没有改善。

看错误内容,貌似是"known_hosts"的锅,打开发现与错误提示一致,是因为github.com的IP变更了(正式因为本人好久没有用github提交代码了,都没有尽早发现)。

问题解决

第一步、在"known_hosts"中删除github.com相关行。

第二步、重新拉取下代码,此步骤主要是为了自动生成最新的github.com项,否则会报如下错误:

bash 复制代码
ssh_exchange_identification: Connection closed by remote host
fatal: 无法读取远程仓库。

请确认您有正确的访问权限并且仓库存在。

所以当执行拉取命令,并在提示时,回答yes同意:

$ git pull

bash 复制代码
The authenticity of host 'github.com (20.205.243.166)' can't be established.
ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,20.205.243.166' (ECDSA) to the list of known hosts.

然后就可以快乐的推送自己的fork分支代码了

思考

所以同样道理,一旦以后遇到诸如域名与IP绑定有变更,而导致类似的ssh连接方式出现问题,关键是在"known_hosts"中删除旧的相关项,重新生成即可。

相关推荐
我是小灰灰吖13 小时前
Ubuntu 22.04 安装 SSH 服务与远程调试环境配置指南
qt·ubuntu·ssh
TunerT_TQ19 小时前
Valhalla 静态工程审阅 #024|蚂蚁集团Ant Design 源码证据驱动评测【大厂开源基础设施特辑】
开源·github·蚂蚁集团·#推荐系统·#typescript·#antdesign
华科大胡子1 天前
GitHub Actions 自动化运维实战:从入门到企业级应用
github
小小龙学IT1 天前
Taskflow:用一张“任务图“玩转现代 C++ 并行编程开源项
c++·开源·github
大模型丫丫1 天前
GitHub Actions 自动化运维实战:从 CI/CD 到云端部署
运维·自动化·github
m4Rk_1 天前
【论文阅读】Agent 记忆机制(31):MemAgent——通过强化学习让固定长度记忆处理百万级长文本
论文阅读·人工智能·学习·开源·github
笨鸟先飞,勤能补拙1 天前
密码学深度指南 — SecOps 工程师实战手册
人工智能·vscode·python·安全·github·密码学·visual studio
TunerT_TQ1 天前
Valhalla 静态工程审阅 #004|MoonshotAI MoonEP 源码证据驱动评测【大厂开源基础设施特辑】
架构·github
Dontla2 天前
预置known_hosts如何防止中间人攻击(MITM)?(服务器公钥、服务器私钥)Runner、DNS污染、BGP劫持、同网络ARP欺骗、SSH握手
服务器·网络·ssh