Um simples jump de SSH
O problema do roteamento não-direto
Considere o seguinte caso:
Máquina A está na rede X;
Máquina B está na rede Y;
Máquina C está na rede Z;
De X alcança Y, de Y alcança Z, porém de X não alcança diretamente Z.
Realizando o jump em um caso real
Nesse caso, para ir de X para Z, podemos editar o arquivo ~/.ssh/config
no nosso ambiente linux. (Tem como fazer no windows também, mas porquê complicar?)
Considerando que a máquina B tem o IP 192.168.20.193, e a máquina C tem o IP 10.50.30.10, podemos fazer o jump com a seguinte configuração:
Host 192.168.20.193
HostName 192.168.20.193
User realrootboy
Host 10.50.30.10
HostName 10.50.30.10
HostKeyAlias 10.50.30.10
ProxyCommand ssh 192.168.20.193 -W %h:%p
Realizando essa configuração, utilizamos a máquina B como "proxy" para chegar na máquina C de destino.
Para realizar a conexão, basta executar:
ssh <user>@10.50.30.10
OBS:. Caso a máquina A não tenha a SSH Key configurada para acessar a máquina B, o comando acima irá pedir as credenciais de acesso da máquina B, antes de pedir o da máquina C.