ssh port forward

0

Eu quero me conectar a um grupo de máquinas usando uma máquina específica usando o tunelamento ssh. Mas em todas as soluções encontradas, eu preciso especificar uma entrada por máquina no meu arquivo de configuração ssh. Eu gostaria de usar um curinga desta maneira:

   Host *.mydomain.com
   // some magic here

Por enquanto, a melhor solução encontrada foi:

link

    
por Jonhnny Weslley 07.05.2012 / 20:02

1 resposta

1

Se você pode executar programas como nc ou netcat ou socat em seu servidor de encapsulamento, você pode usar um ProxyCommand em vez de uma porta:

# 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

Descomente o ProxyCommand apropriado, dependendo de quais ferramentas o servidor de encapsulamento instalou.

Observe que isso configurará e derrubará uma conexão SSH separada para cada túnel estabelecido, o que significa que a conexão será mais lenta do que via SOCKS. (Não afetará a performance após conexão, no entanto.)

Se a sua versão SSH for compatível, você poderá ativar a multiplexação de conexão:

Host tunnelbox.mydomain.com
    ControlMaster no
    ControlPath none

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