Como posso abrir e fechar um túnel SSH junto com o Firefox?

Como posso abrir e fechar um túnel SSH junto com o Firefox?

Eu tenho um servidor proxy ao qual me conecto assim

ssh -L 2001:localhost:8888 -N myserver.com -p 443  

Eu então abro o Firefox

firefox -p "SSHProxy"

(Ele inicia o Firefox configurado para usar a porta 2001). Eu navego um pouco, fecho o Firefox e paro o túnel.

O que eu gostaria de fazer é automatizá-lo: abrir o túnel e depois abrir o Firefox. Quando fechar o Firefox, também gostaria de fechar o túnel.

Isso é possível em um script simples?

eu tentei

ssh -L 2001:localhost:8888 -N myserver.com -p 443 && firefox -p "SSHProxy"

mas apenas o bit SSH é executado, o Firefox não abre. Se eu inverter a ordem, o SSH só abrirá depois que eu fechar o Firefox.


Com a ajuda abaixo usei este script simplificado:

#!/bin/bash -e

#Start SSH
ssh -L 2001:localhost:8888 -Nf myserver.com -p 443 &

#Start Firefox
firefox -p "SSHProxy" &

#Kill the SSH port 2001 when Firefox stops
trap "ps aux | grep ssh | grep 2001 | awk '{print \$2}' | xargs kill" EXIT SIGINT SIGTERM

wait

Responder1

Que tal criar um script bash que use arrays para armazenar o PID e, em seguida, interceptá-los e eliminá-los:

#!/bin/bash -e

ssh -L 2001:localhost:8888 -N myserver.com -p 443 &
PID[0]=$!
firefox -p "SSHProxy" &
PID[1]=$!
trap "kill ${PID[*]}" INT SIGINT        
wait

Se você precisar usar uma senha, procure aqui sshpass:https://stackoverflow.com/questions/16937104/provide-password-to-ssh-command-inside-bash-script-without-the-usage-of-public

EDITAR:

Execute o script no terminal. Navegar. Ao terminar a navegação, volte ao terminal e pressione Ctr-C(INT/SIGINT) os processos deverão ser limpos. Pareceu funcionar para mim.

informação relacionada