Scripter un tunnel SSH
Auteur : Philippe Le Van - @plv@framapiaf.org
Date : 11 février 2024
Introduction
Parfois, on aimerait bien ouvrir un tunnel SSH dans un script bash pour automatiser des tâches. Mais on se retrouve confronté pas mal de problèmes :
- comment reprendre la main après avoir ouvert la connexion SSH sur la machine hôte ?
- comment vérifier que la connexion SSH est bien ouverte ?
- comment refermer la connexion SSH proprement ?
Solution
L'idée est d'utiliser un "control socket" pour parler avec un process SSH déjà ouvert.
Quelques options SSH utilisées dans les commandes suivantes
-M
: spécifie que l'on veut utiliser un "control socket" (master)-S
: spécifie le nom du "control socket"-O
: permet de contrôler le process SSH-f
: demande à SSH de passer en arrière-plan-N
: ne pas exécuter de commande distante-T
: désactive l'allocation de pseudo-tty
1 2 3 4 5 6 7 8 9 10 |
|
Référence
Solution trouvée sur Stack Overflow et un peu développée à partir de la man page de SSH.