Le simple script suivant lancé dans un screen fera parfaitement l’affaire (et propose même du logging pour savoir quand la connexion tombe et/ou est relancée)
#!/bin/sh while true do #establish a ssh tunnel between localhost port 5555 and distant 2424 #tunnel enabled echo -n "connection restart : " >> tunnel.log date --rfc-3339=seconds >> tunnel.log ssh -L 5555:localhost:2424 user@host #connection dropped, logging, wait (socket issue if not) and restart echo -n "connection dropped : " >> tunnel.log date --rfc-3339=seconds >> tunnel.log #after a short sleep and try again ;-) sleep 10 done
Nul besoin de dire qu’il faut des clés ssh pour pouvoir se connecter sans mdp sur un serveur distant et que il est approprié de n’offrir aucun droit sur le serveur ou presque à l’utilisateur qui se connecte en utilisant cette clé. Juste du port forwarding, ni plus ni moins.