Dernièrement, j'utilise souvent la fonction ControlMaster du client SSH, qui me permet d'utiliser une seule connexion SSH-TCP pour plusieurs shells et transferts de port vers le même système distant. La chose la plus ennuyeuse à ce sujet est que le processus du premier shell ouvert devient automatiquement le ControlMaster. Cela signifie que si ce processus est interrompu, tous les autres shells et transferts de port utilisant la connexion maître de contrôle deviennent indisponibles.
J'aimerais vraiment quand la première commande ssh d'un système distant engendrerait un processus d'arrière-plan supplémentaire qui maintiendrait la connexion tant qu'il y aurait encore des connexions utilisant la connexion ControlMaster, donc je pourrais simplement fermer les shells sans avoir à risquer de planter d'autres Connexions. Idéalement, le processus ControlMaster en arrière-plan serait même configurable pour attendre un certain temps que de nouveaux shells ou des transferts de port utilisent le ControlMaster avant de s'arrêter définitivement.
Existe-t-il un moyen de faire faire une telle chose au client ssh? Je sais que je pourrais créer une telle connexion manuellement avant d'utiliser ssh pour créer le premier shell, mais je veux explicitement que cela se produise automatiquement car sinon j'oublierais sûrement de le faire de temps en temps.
Laisser un script wrapper le faire ne serait pas aussi facile, car j'utilise souvent des raccourcis configurés pour les noms de serveurs distants dans .ssh / config et le socket ControlMaster est créé en utilisant USERNAME @ NETWORK_NAME: NETWORK_PORT comme nom. Un wrapper devrait donc parfaitement comprendre .config / ssh pour fonctionner comme prévu.