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

関連情報