Wie kann ich zusammen mit Firefox einen SSH-Tunnel öffnen und schließen?

Wie kann ich zusammen mit Firefox einen SSH-Tunnel öffnen und schließen?

Ich habe einen Proxy-Server, mit dem ich mich so verbinde

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

Ich öffne dann Firefox

firefox -p "SSHProxy"

(Es startet Firefox mit der Konfiguration, Port 2001 zu verwenden.) Ich surfe ein bisschen, schließe dann Firefox und stoppe den Tunnel.

Ich möchte es automatisieren: erst den Tunnel öffnen, dann Firefox öffnen. Wenn ich Firefox schließe, möchte ich auch den Tunnel schließen.

Ist dies in einem einfachen Skript möglich?

Ich habe versucht

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

aber nur das SSH-Bit wird ausgeführt, Firefox öffnet sich nicht. Wenn ich die Reihenfolge umkehre, öffnet sich SSH erst, nachdem ich Firefox geschlossen habe.


Mit der folgenden Hilfe habe ich dieses vereinfachte Skript verwendet:

#!/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

Antwort1

Wie wäre es, ein Bash-Skript zu erstellen, das Arrays zum Speichern der PID verwendet und diese dann abfängt und beendet:

#!/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

Wenn Sie ein Passwort verwenden müssen, suchen Sie hier nach sshpass:https://stackoverflow.com/questions/16937104/provide-password-to-ssh-command-inside-bash-script-without-the-usage-of-public

BEARBEITEN:

Führen Sie das Skript im Terminal aus. Durchsuchen Sie. Wenn Sie mit dem Durchsuchen fertig sind, gehen Sie zurück zum Terminal und drücken Sie Ctr-C(INT/SIGINT). Die Prozesse sollten bereinigt sein. Bei mir schien es zu funktionieren.

verwandte Informationen