SSH 구성 파일에 이 구성이 있습니다.
Host *+*
ProxyCommand ssh $(echo %h | sed -e 's/+[^+]*$//;s/\([^+=]*\)=\([^+]*\)$/\2 -l \1/; s/^\([^+:]*\):\([0-9]*\)+/-p \2 \1+/') -W $(echo %h | sed -e 's/^.*+//; s/:.*$//;'):$(echo %h | sed -e 's/^.*+//; /:/!s/^.*/22/; s/^.*://' ;)
이를 통해 다음과 같은 몇 가지 기본적인 호스트 호핑을 수행할 수 있습니다.
ssh host1+host2 # will ssh into host2 via host1
LocalForward
왜 command( ) 로 -L
같은 일을 하려고 합니까? 나는 성공하지 못한 채 이와 같은 것을 시도했습니다.
Host host1+*
user root
Hostname %h
ProxyCommand ssh host1 -W %h:%p
LocalForward 0.0.0.0:8080 $(echo %h | awk -F'+' '{print $2}'):80
미리 감사드립니다.
답변1
이것SSH 구성 파일쉘 코드는 획득되거나 평가되지 않습니다.
첫 번째 작업이 작동하는 이유는 에이전트 명령 호출의 일부로 셸에서 실행되기 때문입니다.
LocalCommand
하지만 프록시 명령을 호출하는 것과 비슷한 방식으로 사용될 수도 있다고 생각했습니다 ssh -f -L...
. 나는 이것을 해 본 적도 없고 본 적도 없습니다. 당신은 또한 볼 수 있습니다 PermitLocalCommand
.