我曾经有一些名为“myhost”、“myhost1”等的主机。现在除了“myhost3”之外的所有主机都无效。我从/etc/hosts
and 中删除了它们~/.ssh/known_hosts
,但 zsh 仍然为我完成它们。是否有任何其他文件我应该编辑以使 zsh 忘记这些主机?
我的 zsh 配置中没有更改与主机相关的任何内容;他们默认出来。
更新:
一段时间后(在休眠但没有重新启动之后),这些主机消失了。也许 zsh 清除了某种缓存?(但不是~/.zcompdump
我检查的那样。我也尝试启动 zsh 的新实例,但这并没有什么区别。)
我稍后会尝试测试。
更新#2:
我再次尝试并成功从完成列表中删除了一个新添加的主机。也许我之前做错了什么,对不起。
小智 8
从实验来看,看起来 zsh 确实.ssh/known_hosts
用于自动完成,但它只在启动/第一次使用时读取。
删除有问题的主机(ssh-keygen -R hostname
或简单地编辑.ssh/known_hosts
),然后重新启动外壳似乎可以工作。
我不知道 zsh 如何完成它们,但我自己开发的 bash 完成脚本也会查看~/.ssh/config
. 也许检查一下主机是否在那里?
或者,strace -eopen
在自动完成的同时进行 zsh 进程并查看它的外观:)