Últimamente, a menudo uso la función ControlMaster del cliente SSH, que me permite usar una única conexión SSH-TCP para múltiples shells y reenvíos de puertos al mismo sistema remoto. Lo más molesto de esto es que el proceso del primer shell que se abre se convierte automáticamente en ControlMaster. Eso significa que, si este proceso se termina, todos los demás shells y reenvíos de puertos que utilizan la conexión maestra de control dejan de estar disponibles.
Realmente me gustaría cuando el primer comando ssh para un sistema remoto generara un proceso en segundo plano adicional que mantiene la conexión siempre que todavía haya conexiones que usen la conexión ControlMaster, por lo que simplemente podría cerrar los shells reales sin tener que arriesgarme a bloquear otros conexiones Idealmente, el proceso de ControlMaster en segundo plano sería incluso configurable para esperar una cantidad de tiempo para que los nuevos shells o reenvíos de puertos utilicen el ControlMaster antes de finalmente cerrarse.
¿Hay alguna manera de hacer que el cliente ssh haga tal cosa? Sé que podría crear dicha conexión manualmente antes de usar ssh para crear el primer shell, pero quiero explícitamente que esto suceda automáticamente porque de lo contrario seguramente me olvidaría de hacerlo de vez en cuando.
Dejar que un script de envoltura lo haga tampoco sería tan fácil porque a menudo uso shorthands configurados para nombres de servidores remotos en .ssh / config y el socket ControlMaster se crea usando USERNAME @ NETWORK_NAME: NETWORK_PORT como nombre. Por lo tanto, una envoltura necesitaría entender .config / ssh perfectamente para funcionar según lo previsto.