나는 이 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
. 이는 쉘 구성에 의해 방해될 수 있습니다. 이 경우 구성을 두 개로 분할하여 무엇이 문제인지 확인해야 합니다.
이 트릭은 다음 과 동일함을 _ssh
보여주는 완료 결과를 보고 발견되었습니다 .slogin
ssh
% grep compdef $fpath[-1]/_ssh
#compdef ssh slogin=ssh scp ssh-add ssh-agent ssh-keygen sftp ssh-copy-id
%