Você pode usar o ProxyCommand
que você pode configurar ssh
para que ele se conecte a um sistema "gateway" e então se conecte a um sistema secundário que está por trás do sistema "gateway".
Host internal-host
User sam
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh user@gateway nc internal-host.somedom.com %p
Esta técnica faz uso da ferramenta nc
para atuar como um conector. A forma como funciona é totalmente abordada aqui neste artigo intitulado: SSH Multi-hop transparente .
O outro truque que uso é adicionar um ControlMaster
à minha configuração para que, uma vez autenticado, eu possa "reciclar" isso e não ter que continuar a autenticar conexões adicionais.
Host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
Muitos hosts
Se você tiver vários hosts internos, poderá usar variáveis especiais que estão disponíveis para você no arquivo ~/.ssh/config
para selecionar o nome do host ( %h
) e porta ( %p
).
Host host1 host2 host3
User internal-user
ProxyCommand ssh [email protected] nc %h %p
Isso permitirá que você ssh host1
do seu sistema e se conecte ao host1.