zsh ssh는 ~/.ssh/hosts에서 호스트 이름 대신 호스트를 자동 완성합니다.

zsh ssh는 ~/.ssh/hosts에서 호스트 이름 대신 호스트를 자동 완성합니다.

자동 완성 대신 ~/.zshrcSSH를 자동 완성하는 방법이 있습니까 ?HostHostname

~/.ssh/config내 항목에 다음과 같은 항목이 있습니다 .

Host staging-rfc staging
  User crmpicco
  Hostname staging.rfc.crmpicco.co.uk

을 입력하면 ssh sta[TAB]전체 호스트 이름이 미리 채워져 staging.rfc.crmpicco.co.uk권한 거부 오류가 발생합니다. 아마도 "crmpicco" 대신 최종 사용자를 사용하여 로그인을 시도하기 때문일 것입니다.

[email protected]: Permission denied (publickey).

내 거 ~/.zshrc:

# Highlight the current autocomplete option
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"

# Better SSH/Rsync/SCP Autocomplete
zstyle ':completion:*:(scp|rsync):*' tag-order ' hosts:-ipaddr:ip\ address hosts:-host:host files'
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-host' ignored-patterns '*(.|:)*' loopback ip6-loopback localhost ip6-localhost broadcasthost
zstyle ':completion:*:(ssh|scp|rsync):*:hosts-ipaddr' ignored-patterns '^(<->.<->.<->.<->|(|::)([[:xdigit:].]##:(#c,2))##(|%*))' '127.0.0.<->' '255.255.255.255' '::1' 'fe80::*'

# Allow for autocomplete to be case insensitive
zstyle ':completion:*' matcher-list '' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' \
  '+l:|?=** r:|?=**'

# Initialize the autocompletion
autoload -Uz compinit && compinit -i

답변1

zstyle내 것을 다음으로 변경하면 완벽하게 작동했습니다.

zstyle ':completion:*:(ssh|scp|ftp|sftp):*' hosts $hosts
zstyle ':completion:*:(ssh|scp|ftp|sftp):*' users $users

관련 정보