Akhir-akhir ini saya sering menggunakan fitur ControlMaster klien SSH, yang memungkinkan saya menggunakan koneksi SSH-TCP tunggal untuk beberapa shell dan penerusan port ke sistem jarak jauh yang sama. Hal yang paling menyebalkan tentang ini adalah, bahwa proses shell pertama yang dibuka menjadi ControlMaster secara otomatis. Itu berarti, jika proses ini dihentikan, semua shell dan penerusan port lain menggunakan koneksi master kontrol menjadi tidak tersedia.
Saya benar-benar ingin ketika perintah ssh pertama ke sistem jarak jauh akan menelurkan proses latar belakang tambahan yang memegang koneksi selama masih ada koneksi menggunakan koneksi ControlMaster, jadi saya bisa menutup kerang yang sebenarnya tanpa harus mengambil risiko crash lainnya koneksi. Idealnya proses ControlMaster latar belakang bahkan dapat dikonfigurasi untuk menunggu sejumlah waktu untuk shell baru atau penerusan port untuk menggunakan ControlMaster sebelum akhirnya dimatikan.
Apakah ada cara untuk membuat klien ssh melakukan hal seperti itu? Saya tahu saya bisa membuat koneksi seperti itu secara manual sebelum menggunakan ssh untuk membuat shell pertama, tetapi saya secara eksplisit ingin ini terjadi secara otomatis karena kalau tidak saya pasti akan lupa melakukannya setiap sekarang dan kemudian.
Membiarkan skrip pembungkus melakukannya juga tidak akan semudah itu karena saya sering menggunakan steno yang dikonfigurasi untuk nama server jarak jauh di .ssh / config dan soket ControlMaster dibuat menggunakan USERNAME @ NETWORK_NAME: NETWORK_PORT sebagai nama. Jadi pembungkus perlu memahami .config / ssh dengan sempurna agar berfungsi sebagaimana dimaksud.