
SSH 터널링을 사용하여 특정 머신을 사용하는 머신 그룹에 연결하고 싶습니다. 하지만 찾은 모든 솔루션에서 SSH 구성 파일에 시스템당 항목을 지정해야 합니다. 다음과 같은 방식으로 와일드카드를 사용하고 싶습니다.
Host *.mydomain.com
// some magic here
현재 발견된 최상의 솔루션은 다음과 같습니다.
답변1
터널 서버에서 nc
또는 같은 프로그램을 실행할 수 있는 경우 netcat
포트 전달 대신 다음을 사용할 수 있습니다.socat
ProxyCommand
# 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