Aqui está uma maneira mais clara de fazer isso que foi proposta antes:
ssh -f -N -L 14880:internalserver:3306 gateway.example.com &
PIDSSH=$!
( sleep 600 ; echo "Timeout." ; kill $PIDSSH ) &
PIDSLEEP=$!
wait $PIDSSH
kill $PIDSLEEP && echo "Session ended before timeout"
wait
No entanto, você não recebe um código de erro do ssh, mas isso pode ser providenciado.