如何处理 Host key verification failed

当遇到SSH Hostkey Verification Failed错误时,可以采取三种方法解决。一是删除known_hosts文件中对应行,二是修改ssh配置文件禁用StrictHostKeyChecking并指定UserKnownHostsFile,三是登录时添加-i参数禁用检查。虽然第三种方法方便但存在安全风险。了解StrictHostKeyChecking的配置级别可以帮助你平衡安全与便利。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何处理 Host key verification failed

解决方法

  1. 第一个方式就是按照提示删除 /Users/liuzhizhi/.ssh/known_hosts文件中对应的行,然后就能登录了
  2. 第二个方式 是更改ssh的配置 在 ~/.ssh/config 中添加如下配置 StrictHostKeyChecking no UserKnownHostsFile /dev/null
  3. 第三个方法 在用ssh登录时 用-i StrictHostKeyChecking=no

这样就不会在去检测公钥了(但是增加了安全风险),因为是自己的工作机器,为了方面,我用了这个方式。

参考文章

OpenSSH的人都知ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击。
SSH对主机的public_key的检查等级是根据StrictHostKeyChecking变量来配置的。默认情况下,StrictHostKeyChecking=ask。简单所下它的三种配置值:

  1. StrictHostKeyChecking=no
    最不安全的级别,当然也没有那么多烦人的提示了,相对安全的内网测试时建议使用。如果连接server的key在本地不存在,那么就自动添加到文件中(默认是known_hosts),并且给出一个警告。
  2. StrictHostKeyChecking=ask #默认的级别,就是出现刚才的提示了。如果连接和key不匹配,给出提示,并拒绝登录。
  3. StrictHostKeyChecking=yes #最安全的级别,如果连接与key不匹配,就拒绝连接,不会提示详细信息。

参考资料:
ssh known_hosts file
how to fix ssh host key verification failed

### 解决 GitHub Host Key Verification Failed 错误 当遇到 `Host key verification failed` 错误时,通常是因为本地存储的 GitHub 主机密钥与当前尝试连接的 GitHub 密钥不匹配。以下是详细的解决方案: #### 方法一:更新已知主机列表 如果怀疑是由于主机密钥更改引起的问题,则可以手动清除并重新添加 GitHub 的 SSH 密钥。 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值