Método 1 - ProxyCommand & netcat
Eu uso essa configuração no meu $HOME/.ssh/config para facilitar isso:
Host intserver1-o intserver2-o intserver3-o
ProxyCommand ssh [email protected] nc 'echo %h|sed 's/-o//'' %p
Eu, então, posso ssh intserver2-o de onde e eu entro neste servidor interno. Quando em casa na LAN eu uso ssh intserver1 .
NOTA: O truque acima requer o netcat ( nc ) instalado no extserver1.
Método # 2 - ssh aninhado
Como alternativa, você também pode usar esse método:
$ ssh -t -l gatewayuser gatewayserver "ssh -l serveruser internalserver"
Você basicamente aninha chamadas SSH nesse método.
Método 3 - ProxyCommand & ssh -W
Com versões mais recentes do SSH (5.4+), você pode usar ssh em vez de nc por meio da opção -W .
Host TARGETHOST
ProxyCommand ssh -W %h:%p PROXYHOST
O %h & %p são macros para a porta do nome do host que foi usada para TARGETHOST .