SSH 포트 전달

SSH 포트 전달

SSH 터널링을 사용하여 특정 머신을 사용하는 머신 그룹에 연결하고 싶습니다. 하지만 찾은 모든 솔루션에서 SSH 구성 파일에 시스템당 항목을 지정해야 합니다. 다음과 같은 방식으로 와일드카드를 사용하고 싶습니다.

   Host *.mydomain.com
   // some magic here

현재 발견된 최상의 솔루션은 다음과 같습니다.

http://magazine.redhat.com/2007/11/27/advanced-ssh-configuration-and-tunneling-we-dont-need-no-stinking-vpn-software/

답변1

터널 서버에서 nc또는 같은 프로그램을 실행할 수 있는 경우 netcat포트 전달 대신 다음을 사용할 수 있습니다.socatProxyCommand

# Only necessary if it matches the *.mydomain.com wildcard. Useless otherwise.
Host tunnelbox.mydomain.com
    ProxyCommand none

Host *.mydomain.com
    ProxyCommand ssh tunnelbox.mydomain.com nc %h %p
    #ProxyCommand ssh tunnelbox.mydomain.com ncat %h %p
    #ProxyCommand ssh tunnelbox.mydomain.com socat stdio tcp:%h:%p
    #ProxyCommand ssh tunnelbox.mydomain.com netcat %h %p

터널 서버가 설치한 도구에 따라 적절한 ProxyCommand의 주석 처리를 제거합니다.


이렇게 하면 설정된 모든 터널에 대해 별도의 SSH 연결이 설정 및 해제되므로 SOCKS를 통한 연결보다 연결 속도가 느려집니다. (성능에는 영향을 미치지 않습니다.~ 후에그러나 연결은 됩니다.)

SSH 버전이 이를 지원하는 경우 연결 멀티플렉싱을 활성화할 수 있습니다.

Host tunnelbox.mydomain.com
    ControlMaster no
    ControlPath none

Host *.mydomain.com
    ControlMaster auto
    ControlPath ~/.ssh/S.%l.%r@%h:%p
    ControlPersist 10m

관련 정보