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

2

Eu tenho um servidor proxy ao qual me conecto

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 depois paro o túnel.

O que eu gostaria de fazer é automatizá-lo: abra o túnel e abra o Firefox. Quando fecho 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 somente o bit SSH é executado, o Firefox não abre. Se eu inverter o pedido, 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
    
por Mendhak 04.02.2014 / 23:49

1 resposta

1

Que tal criar um script bash que use arrays para armazenar o PID e depois capturá-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 :

EDITAR:

Execute o script no terminal. Squeaky toy. Quando terminar de navegar, volte ao terminal e pressione Ctr-C (INT / SIGINT) os processos devem ser limpos. Pareceu trabalhar para mim.

    
por jmunsch 05.02.2014 / 00:26