GitHub提交时出现Host key verification failed无法读取远程仓库的解决方案


tags: Git Debug Tips

问题

今天提交代码时候发现有这样一个问题:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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:uNiVztksCsDhcc0u9e8BujQXVUpKZIDTMczCvj3tD2s.
Please contact your system administrator.
Add correct host key in ~/.ssh/known_hosts to get rid of this message.
Host key for github.com has changed and you have requested strict checking.
Host key verification failed.

fatal: 无法读取远程仓库
...

那么为什么呢?

找了一圈, 发现一篇帖子是最近(两天前写的)由GitHub官方给出的, 如下:

We updated our RSA SSH host key;

那么, 就用这个方法试试呗:

解决方案

  1. ssh-keygen -R github.com
    
  2. vi ~/.ssh/known_hosts
    
    # 添加一行:
    github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
    
    

解决了~

重新试试提交:

git push
Everything up-to-date

当然, 我之前还试了添加ssh公钥的方法, 并不奏效, 这里也贴出来吧: (熟悉一下操作了)

测试 SSH 连接 设置 SSH 密钥并将其添加到你在 GitHub.com 上的帐户后,可以测试连接。

ssh-keygen -t rsa -C "xxx@gmail.com"

cat ~/.ssh/id_rsa.pub

# 复制内容到GitHub的ssh界面

验证一下:

$ ssh -T git@github.com
Hi Apocaly-pse! You've successfully authenticated, but GitHub does not provide shell access.
### 解决 GitHub Host Key Verification Failed 错误 当遇到 `Host key verification failed` 错误,通常是因为本地存储的 GitHub 主机密钥与当前尝试连接的 GitHub 密钥不匹配。以下是详细的解决方案: #### 方法一:更新已知主机列表 如果怀疑是由于主机密钥更改引起的问题,则可以手动清除并重新添加 GitHubSSH 密钥。 1. 打开终端或命令提示符。 2. 删除旧的 GitHub 条目: ```bash ssh-keygen -R github.com ``` 3. 使用以下命令强制重新获取 GitHub 的最新 RSA 或 ED25519 密钥: ```bash ssh -T git@github.com ``` 这一步会询问是否继续连接(因为新主机密钥),输入 yes 并按回车键确认[^1]。 #### 方法二:切换协议至 HTTPS 对于某些情况,特别是涉及 npm 安装包的情况,可以通过改变 Git 协议来绕过此问题。通过设置全局 URL 替代规则,可以让所有的 SSH 请求自动转为 HTTPS 请求。 执行如下命令完成配置: ```bash git config --global url."https://github.com/".insteadOf "ssh://git@github.com/" ``` 之后再次尝试运行 `npm install` 应该能解决问题[^3]。 #### 方法三:重置SSH密钥配对 有也需要考虑完全移除现有的 SSH 配置,并创建一对全新的公私钥用于身份验证。 - 移除 `.ssh` 文件夹内的所有文件; - 修改 Git 用户名和邮箱信息以确保彻底断绝之前的关联; - 创建新的 SSH 密钥对并将公共部分上传给 GitHub 账户下的 SSH 和 GPG keys 设置页面; 最后测试能否正常克隆仓库以检验修复效果[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zorchp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值