![일반 SSH 클라이언트를 통한 sshpass](https://linux55.com/image/14893/%EC%9D%BC%EB%B0%98%20SSH%20%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8%EB%A5%BC%20%ED%86%B5%ED%95%9C%20sshpass.png)
저는 /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를 수정할 수 있습니다 .ssh
sshpass
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"