यह मेरे लिए नियंत्रण मास्टर के लिए सिर्फ सॉकेट फ़ाइल का उपयोग करके काम करता है:
$ ssh -o ControlPath=~/.ssh/<controlfile> -O check <bogus arg>
उदाहरण
यहाँ एक उदाहरण है जहाँ मैंने पहले ही रिमोट सर्वर से कनेक्शन स्थापित कर लिया है:
$ ssh -o ControlPath=~/.ssh/master-57db26a0499dfd881986e23a2e4dd5c5c63e26c2 -O check blah
Master running (pid=89228)
$
और इसके साथ डिस्कनेक्ट किया गया:
$ ssh -o ControlPath=~/.ssh/master-66496a62823573e4760469df70e57ce4c15afd74 -O check blah
Control socket connect(/Users/user1/.ssh/master-66496a62823573e4760469df70e57ce4c15afd74): No such file or directory
$
यदि यह अभी भी जुड़ा हुआ था, तो यह तुरंत बाहर निकलने के लिए मजबूर करेगा:
$ ssh -o ControlPath=~/.ssh/master-66496a62823573e4760469df70e57ce4c15afd74 -O exit blah
Exit request sent.
$
यह मेरे लिए अस्पष्ट है, लेकिन संभवतः यह एक बग प्रतीत होता है ssh
कि इसमें अंत में एक अतिरिक्त तर्क की आवश्यकता होती है, भले ही blah
मैं जिस स्विच का उपयोग कर रहा हूं उसके संदर्भ में अर्थहीन हो।
इसके बिना यह मुझे देता है:
$ ssh -o ControlPath=~/.ssh/master-57db26a0499dfd881986e23a2e4dd5c5c63e26c2 -O check
usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port]
[-Q cipher | cipher-auth | mac | kex | key]
[-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] [user@]hostname [command]
संस्करण की जानकारी
OSX
$ ssh -V
OpenSSH_6.9p1, LibreSSL 2.1.8
सेंटोस 7.x
$ ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
मैंने पुष्टि की कि इन दोनों संस्करणों पर, अतिरिक्त फर्जी तर्क की आवश्यकता थी।
संदर्भ
ssh -S none
(शायद यह आपको पहले से ही मदद करता है)।