zsh는 cssh를 완료합니다. /etc/hosts 및 ~/.ssh/config에서 호스트를 완성합니다.

zsh는 cssh를 완료합니다. /etc/hosts 및 ~/.ssh/config에서 호스트를 완성합니다.

내 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.

관련 정보