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
.