
Quero me conectar a um grupo de máquinas usando uma máquina específica usando tunelamento ssh. Mas em todas as soluções encontradas, preciso especificar uma entrada por máquina no meu arquivo de configuração ssh. Eu gostaria de usar um curinga desta forma:
Host *.mydomain.com
// some magic here
Por enquanto, a melhor solução encontrada foi:
Responder1
Se você puder executar programas como nc
ou netcat
ou socat
em seu servidor de encapsulamento, poderá usar um ProxyCommand
em vez de um encaminhamento de 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
Remova o comentário do ProxyCommand apropriado, dependendo de quais ferramentas o servidor de encapsulamento instalou.
Observe que isso configurará e desativará uma conexão SSH separada para cada túnel estabelecido, o que significa que a conexão será mais lenta do que via SOCKS. (Isso não afetará o desempenhodepoisconexão, no entanto.)
Se a sua versão SSH suportar, 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