조직 SSH 별칭

조직 SSH 별칭

나의 .ssh/config가명은 점점 늘어나기 시작했고 그것을 기억하는 것이 점점 더 어려워졌습니다.

점점 늘어나는 컬렉션을 더 효과적으로 관리하기 위한 제안 사항이 있습니까?

예를 들어 특정 유형을 입력하면 ssh자동 완성이 되나요 ?

답변1

Bash에 대한 매우 나쁜 1-완성:

function _ssh_complete () {
    local match=${COMP_WORDS[${COMP_CWORD}]}
    local hosts=
    local default=

    local _ssh_complete_hostlist=$( \
        grep "^\s*Host\s*=" ~/.ssh/config 2>/dev/null \
            | sed -r "s/^[^=]+= *//;s/ /\n/g" \
            | sort )

    for h in $_ssh_complete_hostlist; do
        if [[ $h =~ ^$match ]]; then
            hosts="$hosts $h"
        fi
    done
    if ! (( ${COMP_CWORD} == ${#COMP_WORDS[@]}-1 )); then
        default=$( compgen -f ${COMP_WORDS[${COMP_CWORD}]} )
    fi
    COMPREPLY=($hosts $default)
}
complete -F _ssh_complete ssh

$_ssh_complete_hostlist완료 기능 외부에서(예: 쉘 초기화 중) 초기화를 수행 할 수 있습니다 . 그렇지 않으면 각 완료 테스트에 대해 세 개의 프로그램이 생성됩니다. 구성 파일은 자주 변경되지 않으므로 필요할 때 초기화 함수를 수동으로 호출할 수 있습니다.

1) 예를 들어 줄 끝에서만 완성되므로 원격 호스트 이름을 입력하고 완성하기 전에 모든 옵션을 선언해야 합니다.

관련 정보