내 zsh 완료 파일에는 _cssh
/etc/hosts의 호스트만 완료하는 다음 줄이 있습니다.
'*:userhostport: _alternative hosts:host:_hosts usersathosts:userathost:_user_at_host'
ssh와 동일하게 ~/.ssh/config에 정의된 호스트를 완성하려면 어떻게 해야 합니까? 완전한 _ssh 파일은 다음과 같습니다.여기
사용자 이름을 입력할 필요가 없습니다. 의 호스트 이름 /etc/hosts
과 에 정의된 호스트 만 있으면 됩니다 ~/.ssh/config
. 또한 여러 호스트가 완료할 수 있는 것이 중요합니다(cssh는 ssh와 달리 여러 호스트가 필요한 클러스터 ssh입니다).
답변1
alternative
두 곳 모두에서 /etc/hosts
업데이트 해 보세요 .~/.ssh/config.
"*:userhostport: _alternative 'hosts from /etc/hosts:hosts:host:_hosts' 'hosts from ~/.ssh/config:hosts:host:_ssh_config_hosts' usersathosts:userathost:_user_at_host"
_cssh
그리고 파일의 함수 정의 앞에 다음 함수를 추가합니다 _cssh
.
_ssh_config_hosts() { local hosts hosts=("${(@f)${(ps:\n:)${(f)"$(<$HOME/.ssh/config)"}:#Host*}") _describe -t hosts 'hosts from ~/.ssh/config' hosts }
/etc/hosts
그런 다음 및 를 사용할 수 있어야 합니다 ~/.ssh/config
.