Duas recomendações genéricas primeiro:
- Comece configurando uma conta de usuário normal
@myvpsip
em vez de usar raiz. - Configure a autenticação com base em chave pública para essa conta, para que você não precise mexer com senhas de texto sem formatação em seus scripts ssh.
Na página de manual do NetworkManager:
NetworkManager will execute scripts in the /etc/NetworkManager/dispatcher.d directory in alphabetical order in response to network events. Each script should be (a) a regular file, (b) owned by root, (c) not writable by group or other, (d) not set-uid, (e) and executable by the owner. Each script receives two arguments, the first being the interface name of the device just activated, and second an action.
Então, sim, parece que você pode acionar ações do NetworkManager no início e no término de conexões de rede.
Um script simples pode ser (não testado):
#!/bin/bash
#/etc/NetworkManager/dispatcher.d/ssh-proxy
case "$2" in
up)
nohup ssh -D 9999 user@myvpsip
tunnelpid=$!
echo $tunnelpid > /var/run/ssh-proxy
;;
down)
if [ -e /var/run/ssh-proxy ] ; then
tunnelpid=$(cat /var/run/ssh-proxy)
kill -9 $tunnelpid
rm /var/run/ssh-proxy
fi
;;
esac