Você não precisa de nenhum gatilho especializado em relayhost . Tudo o que você precisa fazer é usar o encaminhamento de porta remota com ssh -R em vez do encaminhamento de porta local com ssh -L .
Agora, se eu entendi corretamente - seu problema é que nem localhost nem host1 têm IP publicamente acessível - ambos estão atrás do NAT. Caso contrário, seria mais fácil criar um túnel de host1 para localhost com ssh -R e, em seguida, executar a segunda conexão SSH dentro desse túnel.
Se tivermos que usar o relé, isso pode ser feito nas etapas a seguir. Para maior clareza, vamos renomear sua localhost machine para myhost agora.
-
Execute isso em
host1:ssh -R 12345:localhost:22 user@relayhostIsso abrirá a porta
12345onrelayhoste, quando alguém se conectar a ela, os dados serão encaminhados para a porta SSH22onhost1. -
Agora, você pode se conectar à porta
12345onrelayhostdemyhost.ssh user@relayhost -p 12345Caso você tenha um firewall restritivo em
relayhostque proíbe o acesso externo à porta12345, você pode usar o encaminhamento de porta local para abrir a porta localmente emmyhost:ssh -N -L 56789:localhost:12345 user@relayhostEm seguida, conecte-se a
host1demyhost:ssh user@localhost -p 56789
No entanto, não espere criar uma solução de rede permanente no encaminhamento remoto de portas (consulte: link para possíveis problemas futuros). Você deve considerar o uso da VPN com o servidor em relayhost para a configuração de longo prazo.