일반 SSH 클라이언트를 통한 sshpass

일반 SSH 클라이언트를 통한 sshpass

저는 /usr/bin/ssh비밀번호 없는 인증을 사용하고 요구하는 애플리케이션을 개발 중입니다. 동시에 나는 그것을 요구하는 서버와 함께 사용하고 싶습니다.둘 다공개키와 비밀번호가 동시에 확인됩니다. 대부분의 경우 그냥 사용하는 것이 sshpass좋은 해결책이지만(비밀 비밀번호가 안전하고 보안 공개 키 인증도 사용한다고 가정), 그 반대가 아닌 다른 방법으로 sshpass둘러싸는 것 입니다.ssh

호출 시 어떻게 사용하나요 sshpass? /usr/bin/ssh x현재 해결 방법은 아래 구성입니다. 작동하지만 대상 서버에서 자체 서버로 점프합니다. 차라리 이 오버헤드가 없는 것이 낫습니다.

Host x
    HostName xxx.xxx.xx
    ProxyCommand sshpass -f passwordfile ssh -W %h:%p xxx.xxx.xx

서버 자체로 이동하지 않고 동일한 결과를 얻을 수 있는 방법이 있습니까?

(그렇지 않은 경우 - 나중에 동일한 문제가 발생하는 경우 위의 구성이 작동하는 솔루션입니다.)

답변1

내가 사용하고 있는 애플리케이션이 ssh프로그램에서 검색하는 CLI 라는 점을 고려하면 실제로 래퍼인 특수 명령을 $PATH포함하도록 PATH를 수정할 수 있습니다 .sshsshpass

sshpass다음이라는 실행 파일로 래핑됩니다 ssh.

/path/to/bin/ssh:

#!/usr/bin/env bash
sshpass -f /path/to/passwordfile ssh "$@"

그런 다음 또는에 다음 별칭을 추가하여 ssh런타임 시 PATH에 사용자 정의된 상위 디렉터리를 추가합니다 .myapp.zshrc.bashrc

alias myapp="PATH=/path/to/bin:$PATH myapp"

관련 정보