Você pode fazer isso através do recurso ProxyCommand
do ssh. Adicione o seguinte ao seu arquivo $HOME/.ssh/config
. Crie-o se não existir apenas com este conteúdo:
Host remoteserverX
User userint
ProxyCommand ssh userext@externalserver nc remoteserverX %p
Host remoteserverY
User userint
ProxyCommand ssh userext@externalserver nc remoteserverY %p
Você se conecta aos diferentes servidores remotos internos assim:
$ ssh remoteserverX
-or-
$ ssh remoteserverY
Esta é a ponta do iceberg no que diz respeito a esse recurso. Veja este P & D de Perguntas e Respostas intitulado: , para mais detalhes.
NOTA: O método acima está fazendo uso de uma ferramenta chamada nc
(netcat), que deve estar nos repositórios de qualquer das principais distribuições.
Isso não é exatamente o mesmo que o redirecionamento do Nginx, você está tunelando pelo sistema externo para acessar o sistema interno, mas tem um efeito semelhante.
Exemplos complexos
-
Uma estrofe
Host
, muitos hosts.Host *.mydom.com * ProxyCommand ssh externalserver nc %h %p
-
Uma estrofe "Hosts" para muitos usuários.
Adicione a sub-rotina
Hosts
ao arquivo/etc/ssh/ssh_config
do sistema para que qualquer pessoa que faça login na caixa possa utilizá-lo.