ssh
chính nó có thể làm điều này thông qua Match
tài liệu ssh_config(5)
mặc dù tài liệu hơi thưa thớt trên các ví dụ. Hình thức này có thể phù hợp nếu một người muốn đẩy sự phức tạp vào cấu hình SSH mặc dù bị hạn chế bởi các giới hạn của ssh_config(5)
cú pháp và có thể yêu cầu một số thay đổi cho kết quả mong muốn. Đáng chú ý là cổng tùy chỉnh không thể được đặt hoặc có thể được đặt sai từ lần Match
thử trước . Đây là lý do tại sao, bên dưới, nó được đặt hai lần khi được kiểm tra hoặc một lần cho mặc định và không được đặt khi thiết lập mặc định chính tắc.
# 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
chỉ kiểm tra xem một cái gì đó phản hồi trên cổng đã cho và có thể trông giống như
#!/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