ssh
स्वयं यह Match
प्रलेखित दस्तावेज के माध्यम से कर सकता है , ssh_config(5)
हालांकि दस्तावेज़ीकरण कुछ उदाहरणों पर विरल है। यह फॉर्म उपयुक्त हो सकता है अगर कोई SSH कॉन्फ़िगरेशन में जटिलता को धक्का देना चाहता है, हालांकि ssh_config(5)
वाक्य रचना की सीमाओं द्वारा प्रतिबंधित है और वांछित परिणाम के लिए कुछ फ़िदालिंग की आवश्यकता हो सकती है। विशेष रूप से कस्टम पोर्ट को या तो सेट नहीं किया जा सकता है या पिछले Match
प्रयास से गलत तरीके से सेट किया जा सकता है । यही कारण है कि नीचे, इसे दो बार सेट किया जाता है, जब एक बार डिफ़ॉल्ट के लिए परीक्षण किया जाता है, और विहित दोष स्थापित करते समय सेट नहीं किया जाता है।
# here we set the defaults for the host (no port!)
Match !canonical host testhost
CanonicalizeHostname yes
Hostname 192.0.2.42
IdentityFile ~/.ssh/id_blahblah
...
# port available?
Match canonical host 192.0.2.42 exec "is-ssh-up %h 2222"
Port 2222
# or the default port
Match canonical host 192.0.2.42
Port 22
is-ssh-up
केवल यह जांचता है कि क्या दिए गए पोर्ट पर कुछ प्रतिक्रिया करता है और कैसा दिख सकता है
#!/usr/bin/env expect
package require Tcl 8.5
if {[llength $argv] < 2} {
puts stderr "Usage: is-ssh-up host port"
exit 1
}
puts stderr "is-ssh-up: DEBUG trying $argv"
set socket [socket -async [lindex $argv 0] [lindex $argv 1]]
chan event $socket readable [list exit 0]
after 3000 [list exit 1]
vwait godot