remove um host da lista de conclusão de ssh no zsh

7

Uma vez eu tive alguns hosts chamados 'myhost', 'myhost1', etc. E agora todos aqueles exceto 'myhost3' se tornam inválidos. Eu removi aqueles de /etc/hosts e ~/.ssh/known_hosts , mas zsh ainda os completa para mim. Existe algum outro arquivo que eu deveria editar para fazer zsh esquecer sobre esses hosts?

Eu não mudei nada relacionado a hosts na minha configuração zsh; eles saem por padrão.

ATUALIZAÇÃO:

Algum tempo depois (após uma hibernação, mas sem reinicialização), esses hosts desaparecem. Talvez zsh limpou algum tipo de cache? (Mas não ~/.zcompdump como eu verifiquei isso. Eu também tentei iniciar novas instâncias de zsh, mas isso não faz diferença.)

Vou tentar e testar mais tarde.

UPDATE # 2:

Eu tentei novamente e removi com êxito um host recém-adicionado da lista de conclusão. Talvez eu tenha feito algo errado anteriormente, desculpe.

    
por lilydjwg 02.03.2013 / 10:41

3 respostas

6

A partir da experimentação, parece que o zsh está de fato usando .ssh/known_hosts para o preenchimento automático, mas apenas lê na inicialização / primeiro uso.

Excluindo o host incorreto ( ssh-keygen -R hostname ou simplesmente editando .ssh/known_hosts ), o reinício do shell parece funcionar.

    
por 21.03.2015 / 23:14
0

Eu não sei como o zsh os completa, mas meus scripts de conclusão bash homegrown também analisam ~/.ssh/config . Talvez verifique se os anfitriões estão lá?

Como alternativa, strace -eopen do processo zsh enquanto autocompletar e ver onde fica :)

    
por 02.03.2013 / 12:07
0

Você pode precisar excluir o cache de conclusão do zsh, ~/.zcompdump (ou $_comp_dumpfile se você alterou o local).

    
por 04.03.2013 / 01:47