You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级OpenSSH Server后无法通过ssh-keygen移除known_hosts旧密钥,提示行无效

升级OpenSSH Server后无法通过ssh-keygen移除known_hosts旧密钥,提示行无效

嗨,别发愁,碰到这种情况不一定非要手动逐行删除那些无效行,我给你几个实用的解决办法:

  • 先修复known_hosts里的无效行(根源解决)
    ssh-keygen之所以报错,核心原因是你的/home/grin/.ssh/known_hosts文件里确实存在格式错误的行(就是报错里提到的第1、12、123行)。你可以用文本编辑器(比如nano或者vim)打开这个文件,定位到这些行,检查是不是有字段缺失、语法错乱之类的问题,删掉或者修正这些无效行之后,再重新运行ssh-keygen -R oldserver,应该就能正常移除目标主机的旧密钥了。

  • 直接用sed命令绕过无效行删除目标密钥
    如果不想先处理那些无效行,也可以用sed命令直接精准删除包含oldserver的条目,命令如下:

    sed -i '/oldserver/d' /home/grin/.ssh/known_hosts
    

    这个命令会直接在原文件中删除所有匹配oldserver的行,不过要注意:如果你的known_hosts里有多个和oldserver相关的条目,都会被一起删掉,执行前最好确认一下哦。

  • 重新生成干净的known_hosts文件(适合主机不多的情况)
    要是你的常用主机不多,也可以先备份一下原来的文件:

    cp /home/grin/.ssh/known_hosts /home/grin/.ssh/known_hosts.bak
    

    然后删掉原文件,之后重新连接各个常用主机,ssh会自动把新的主机密钥添加到新生成的known_hosts文件里,这样就能得到一个完全干净的文件了。

备注:内容来源于stack exchange,提问作者grin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 14:23:05