Já používám pro podobný účel tento skript - běží tam příkaz, který nikdy neskončí, echo slouží jako forma keepalive. pokud SSH spadne, je ve smyčce, která ho zase nahodí.
#! /bin/bash
while true; do
ssh -L 1111:192.168.1.123:2222 user@example.net 'while true; do echo $(date +%T); sleep 10; done'
sleep 5;
done