Eu não encontrei uma solução "on-demand" verdadeira para túneis ssh. Aqui está a definição (para mim):
- Um host (local ou remoto) tem um serviço de escuta na porta XXX
- Um cliente (novamente, local ou remoto) se conecta à porta XXX
- O host inicia uma conexão ssh predefinida para outro host e configura o encaminhamento de porta apropriado, a autenticação geralmente feita para o cliente.
- O cliente pode usar essa conexão com base no encaminhamento de porta.
Por mais que eu saiba, não há nenhum software que atualmente habilite a parte "sob demanda"; conforme definido por um serviço que está ativamente escutando conexões. Obviamente, você pode iniciar um serviço que cria o túnel, mas isso é obviamente uma operação manual.
Atualmente, minha solução está usando o launchd para manter uma conexão ssh aberta o tempo todo. Eu usei este post para criar minha própria solução:
link
Se você atualizar sua pergunta, eu provavelmente poderia ajudá-lo a criar sua própria, novamente, esta é uma solução dedicada, não "sob demanda".
Como uma alternativa para isso, você pode procurar como o Gerenciador de Túnel SSH ou o TunnelBlick mencionado anteriormente para iniciar os túneis manualmente.