예전에는 "myhost", "myhost1" 등의 이름을 가진 호스트가 있었습니다. 이제 "myhost3"을 제외한 모든 호스트가 유효하지 않게 됩니다. 나는 /etc/hosts
그것을 제거했지만 ~/.ssh/known_hosts
zsh는 여전히 나를 위해 완료했습니다. 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
위치를 변경하는 경우).