我最近将我的两个服务器的域从mdorst.net
更改为mars.mdorst.net
. 现在,当我转到 ssh 时,其中一个会按预期自动完成,而另一个则不会。
$ ssh michael@o<Tab>
自动完成到
$ ssh [email protected]
这就是我想要的。但是,当我输入
$ ssh michael@c<Tab>
它自动完成
$ ssh [email protected]
并将光标放在 m 之后。
我最好的猜测是它知道我输入了以下两个
$ ssh [email protected]
$ ssh [email protected]
之前,想知道是哪一个。非常聪明!除了我不想要这种行为,所以我回过头来.zsh_history
删除了所有出现的curiosity.mdorst.net
,问题仍然存在!
这让我非常困惑,因为我之前也做过opportunity.mdorst.net
,但是当我输入时不会发生这种情况o<Tab>
,只有当我输入时才会发生c<Tab>
。
我怎样才能让它自动完成到正确的域?
zsh
正在从文件中收集有关用户名和访问过的主机的信息以ssh
完成如果未设置
hosts
和样式。known-hosts-files
(来源:zshcompsys
手册)所以,你应该首先检查你的
~/.ssh/known_hosts
文件并删除你不想完成的远程计算机的行。