특정 원격 시스템에 연결하기 전에 특정 로컬 명령을 실행해야 합니다. 그러니까 난 할 필요 없어ssh [email protected]
local_command
ssh [email protected]
저는 이것을 자동화하고 싶기 때문에 이것만 하면 됩니다 ssh remote.machine
.
나는 나만의 호출 스크립트를 생성하여 ssh
쉘 수준에서 이를 달성 할 수 있다는 것을 알고 있지만 /usr/bin/ssh
다음을 사용할 수 있습니다.프록시 명령옵션 ssh_config
?
내가 이해하는 바에 따르면 다음과 같은 것이 필요합니다.
Host remote.machine
ProxyCommand local_command; ssh [email protected]
내 ~/.ssh/config
파일에 있지만 물론 루프이기 때문에 정확히 같지는 않습니다!
답변1
사용하는 경우 ProxyCommand
유사한 방법을 사용하여 /usr/bin/nc
서버에 연결해야 합니다.
sh -c "command list"
연결하기 전에 명령을 호출하려면 두 명령을 하나로 결합 해야 합니다 .
Host remote.machine
ProxyCommand sh -c "local_command; /usr/bin/nc %h %p"
더:
너무 복잡 하다면 local_command
스크립트를 사용할 수 있습니다.
cat my_connect.sh
#!/bin/bash
local_command
/usr/bin/nc "$1" "$2"
SSH 구성은 다음과 같습니다.
Host remote.machine
ProxyCommand /path_to_my_connect.sh %h %p
마지막으로 자신만의 프록시를 추가할 수 있습니다./usr/bin/nc
답변2
링크한 페이지의 예를 사용하면 다음과 같습니다.
ProxyCommand /usr/bin/nc -X connect -x 192.0.2.1:8080 %h %p
nc(netcat)를 호출하여 에이전트(에이전트는 192.0.2.1:8080에서 실행 중)에 연결하고 %h 및 %p를 ssh 명령(%h = 호스트 이름, %p = 포트)에 전달합니다.