Encontrei a solução aqui: link
A melhor maneira - Túneis que fecham automaticamente
Como foi mencionado anteriormente, em vez de usar a combinação do comutador -fN, podemos usar apenas -f, mas também executar um comando na máquina remota. Mas, qual comando deve ser executado, já que só precisamos inicializar um túnel?
É quando o sono pode ser o comando mais útil de todos! Nesta situação particular, o sono tem duas vantagens:
- não faz nada, portanto, nenhum recurso é consumido
- o usuário pode especificar por quanto tempo será executado
Como isso ajuda a fechar automaticamente o túnel ssh é explicado abaixo.
Iniciamos a sessão ssh em segundo plano, enquanto executamos o comando sleep por 10 segundos na máquina remota. O número de segundos não é crucial. Ao mesmo tempo, executamos o vncviewer exatamente como antes:
[me@local]$ ssh -f -L 25901:127.0.0.1:5901 [email protected] sleep 10; \
vncviewer 127.0.0.1:25901:1
Nesse caso, o cliente ssh é instruído a bifurcar a sessão ssh no plano de fundo (-f), criar o encapsulamento (-L 25901: 127.0.0.1: 5901) e executar o comando sleep no servidor remoto por 10 segundos. segundos (dormir 10).
A diferença entre este método e o anterior (switch -N), basicamente, é que, neste caso, o objetivo principal do cliente ssh não é criar o encapsulamento, mas sim executar o comando sleep por 10 segundos. A criação do túnel é algum tipo de efeito colateral, um objetivo secundário. Se o vncviewer não fosse usado, o cliente ssh sairia após o período de 10 segundos, já que não teria mais tarefas a fazer, destruindo o túnel ao mesmo tempo.
Durante a execução do comando sleep, se houver outro processo, o vncviewer, neste caso, começa a usar esse túnel e o mantém ocupado além do período de 10 segundos, mesmo que o cliente ssh termine seu trabalho remoto (execução do sono) , não pode sair porque outro processo ocupa o túnel. Em outras palavras, o cliente ssh não pode destruir o túnel porque ele teria que matar o vncviewer também. Quando o vncviewer pára de usar o encapsulamento, o cliente ssh também sai, já que ele já atingiu seu objetivo.
Dessa forma, nenhum processo ssh é executado em segundo plano.