zshのSSH完了リストからホストを削除する

zshのSSH完了リストからホストを削除する

以前は、「myhost」、「myhost1」などの名前のホストがありました。これで、「myhost3」を除くすべてのホストが無効になります。私は/etc/hostsそれを削除しましたが、~/.ssh/known_hostszshはまだ私のために完了しました。 zshがこれらのホストを忘れるように編集する必要がある他のファイルはありますか?

デフォルトでは、表示されるzsh構成でホスト固有の項目を変更していません。

修正する:

一定時間が経過すると(休止状態後に再起動されない)、これらのホストは消えます。おそらくzshはどのようなキャッシュを消去したのでしょうか? (しかし、~/.zcompdump私は確認したわけではありません。zshの新しいインスタンスを起動してみましたが、違いはありませんでした。)

後で試してみてテストします。

アップデート#2:

再試行して、完了リストから新しく追加されたホストを正常に削除しました。たぶん私は前に何か間違っていたかもしれません。申し訳ありません。

答え1

実験では、zshはオートコンプリート機能を実行します.ssh/known_hostsが、起動/最初の使用時にのみ読み取られます。

問題のあるホストを削除するssh-keygen -R hostnameか、単に編集して.ssh/known_hostsシェルを再起動すると機能するようです。

答え2

zshがどのように完了するかはわかりませんが、私が自分で開発したbashコンプリートスクリプトでも~/.ssh/configホストがあるかどうかを確認できますか?

または、strace -eopenオートコンプリート中にzshプロセスを実行し、どのように見えるかを確認してください。 :)

答え3

zsh完了キャッシュを削除する必要があるかもしれません~/.zcompdump(または$_comp_dumpfile場所を変更した場合)。

関連情報