Источник: Как надежно поддерживать открытый туннель SSH?
Это твой тоннель мертв из-за бездействия? У меня была эта проблема при туннелировании портов с моего телефона, поэтому я, наконец, прекратил создание фиктивных команд в соединении, чтобы сделать его "живым", используя команду watch, например: watch -n1 60 echo "wiiiii". Туннель не умрет, если сеть не сломана или вы не используете ее.
Похоже, вам нужно [autossh] (http://www.harding.motd.ca/autossh/). Это будет контролировать ssh-туннель и перезапускать его при необходимости. Мы использовали его в течение нескольких лет, и это, кажется, работает хорошо.
autossh -M 20000 -f -N your_public_server -R 1234:localhost:22 -C
Подробнее о параметре -M здесь
autossh -f -nNT -i ~/keypair.pem -R 2000:localhost:22 username@myoutsidebox.com Вы можете заметить, что я настроил это, используя -nNT, который не создает удаленный терминал, чтобы я мог поместить autossh в фоновый режим, и опцию -i для SSH, чтобы использовать файл .pem. Если вы собираетесь постоянно держать соединение открытым, я определенно рекомендую пройти дополнительную настройку.