私はこのsshrc
パッケージと同じ名前のコマンドを使用して、SSHログイン中にリモートシステムのシェルにローカルの.sshrcファイルの内容を取得させます。しかし、私は本当にzshのホストオートコンプリート機能(~/.ssh/{config,authorized_keys}
そして/etc/hosts
ファイルベース)が大好きです。
sshをsshrcにエイリアスを指定すると、zshはだまされません(完成した設定をロードする前にエイリアスを解決するようです)。私はzshのconfをめちゃくちゃにしようとしました。たとえば、/usr/share/zsh/5.3.1/functions/_ssh
にコピーし、_sshrc
ファイルを編集して名前を変更します。_ssh()機能…運がないですね。
私のSSHプロファイルには何千ものホストがあるので、ヒントを提供していただきありがとうございます。
答え1
これは私にとって効果的ですzsh 5.4.2
$ PS1='%% ' zsh -f
% rm ~/.zcompdump
% autoload -U compinit && compinit
% compdef sshrc=ssh
% sshrc ...
最小構成でzsh -f
。これはシェル構成によって妨げられる可能性があります。この場合、構成を2つに分割して何が問題であるかを確認する必要があります。
このトリックは、次のものと同じであることを_ssh
示す完了結果を見て発見されました。slogin
ssh
% grep compdef $fpath[-1]/_ssh
#compdef ssh slogin=ssh scp ssh-add ssh-agent ssh-keygen sftp ssh-copy-id
%