从 zsh 中 ssh 的完成列表中删除主机

lil*_*jwg 8 zsh autocomplete

我曾经有一些名为“myhost”、“myhost1”等的主机。现在除了“myhost3”之外的所有主机都无效。我从/etc/hostsand 中删除了它们~/.ssh/known_hosts,但 zsh 仍然为我完成它们。是否有任何其他文件我应该编辑以使 zsh 忘记这些主机?

我的 zsh 配置中没有更改与主机相关的任何内容;他们默认出来。

更新:

一段时间后(在休眠但没有重新启动之后),这些主机消失了。也许 zsh 清除了某种缓存?(但不是~/.zcompdump我检查的那样。我也尝试启动 zsh 的新实例,但这并没有什么区别。)

我稍后会尝试测试。

更新#2:

我再次尝试并成功从完成列表中删除了一个新添加的主机。也许我之前做错了什么,对不起。

小智 8

从实验来看,看起来 zsh 确实.ssh/known_hosts用于自动完成,但它只在启动/第一次使用时读取。

删除有问题的主机(ssh-keygen -R hostname或简单地编辑.ssh/known_hosts),然后重新启动外壳似乎可以工作。


Den*_*ker 0

我不知道 zsh 如何完成它们,但我自己开发的 bash 完成脚本也会查看~/.ssh/config. 也许检查一下主机是否在那里?

或者,strace -eopen在自动完成的同时进行 zsh 进程并查看它的外观:)