mac上彻底清理ssh客户端缓存的核心是清除~/.ssh/目录下的信任记录、密钥及配置文件:①用ssh-keygen -r精准删除指定主机;②手动编辑known_hosts;③清空整个known_hosts;④清理terminal命令历史、~/.ssh/config及私钥文件。
mac 上彻底卸载和清理本地 ssh 客户端缓存,核心是清除 ~/.ssh/ 目录下的信任记录、密钥文件及相关配置,而非“卸载 ssh 客户端”本身——因为 openssh 是 macos 系统自带组件,无法也不建议卸载。真正需要清理的是你长期使用过程中积累的连接状态数据。
精准删除某台服务器的已知主机记录
这是最常用、最安全的做法,适用于更换服务器 IP、重装系统后密钥变更、或收到 Host key verification failed 报错时。
- 打开终端,执行:
ssh-keygen -R example.com(替换为域名) - 或按 IP 清理:
ssh-keygen -R 192.168.1.50 - 验证是否删净:运行
grep -n "example.com" ~/.ssh/known_hosts,无输出即成功
手动编辑 known_hosts 文件
当目标主机条目格式特殊(如含端口、通配符)、或需批量检查多行时更灵活。
- 进入目录:
cd ~/.ssh - 用编辑器打开:
nano known_hosts(或vim known_hosts) - 查找对应 IP 或域名所在行,整行删除
- 保存退出:
Ctrl+O → Enter → Ctrl+X(nano 操作)
清空全部 SSH 主机信任记录
适合重置所有远程主机信任关系,比如刚接手一台旧 Mac、或排查全局密钥冲突问题。
- 直接删除文件:
rm ~/.ssh/known_hosts - 若提示权限问题,加强制参数:
rm -f ~/.ssh/known_hosts - 下次 SSH 连接任一主机时,会像首次一样提示确认指纹,自动重建新记录
顺手清理关联残留项
仅删 known_hosts 不够彻底,以下几项常被忽略但影响实际体验:
-
SSH 命令历史:Terminal 自身缓存的
ssh user@host命令可能泄露敏感地址,执行defaults delete ~/Library/Preferences/com.apple.Terminal.plist PreviousCommands并重启 Terminal -
自定义 SSH 配置:检查
~/.ssh/config是否存在,里面可能存有别名、端口、密钥路径等,按需编辑或删除 -
私钥与公钥文件:如不再使用某组密钥,可安全删除
id_rsa、id_rsa.pub等(注意别误删仍在用的)










