Ultimamente utilizzo spesso la funzione ControlMaster del client SSH, che mi consente di utilizzare una singola connessione SSH-TCP per più shell e port forwarding sullo stesso sistema remoto. La cosa più fastidiosa di questo è che il primo processo della shell che viene aperto diventa automaticamente ControlMaster. Ciò significa che, se questo processo viene terminato, tutte le altre shell e port forwarding che utilizzano la connessione master di controllo diventano non disponibili.
Mi piacerebbe davvero quando il primo comando ssh su un sistema remoto generasse un ulteriore processo in background che mantiene la connessione fintanto che ci sono ancora connessioni che usano la connessione ControlMaster, quindi potrei semplicemente chiudere le shell effettive senza dover rischiare di arrestare altre connessioni. Idealmente, il processo in background di ControlMaster sarebbe persino configurabile in modo da attendere un certo periodo di tempo affinché nuove shell o port forwarding utilizzino ControlMaster prima di chiudere definitivamente.
C'è un modo per fare in modo che il client ssh faccia una cosa del genere? So che potrei creare una tale connessione manualmente prima di usare ssh per creare la prima shell, ma voglio esplicitamente che ciò accada automaticamente perché altrimenti dimenticherei sicuramente di farlo ogni tanto.
Lasciare fare uno script wrapper non sarebbe così facile perché uso spesso shorthands configurati per nomi di server remoti in .ssh / config e il socket ControlMaster viene creato usando USERNAME @ NETWORK_NAME: NETWORK_PORT come nome. Quindi un wrapper dovrebbe capire perfettamente .config / ssh per funzionare come previsto.