ssh
Match
문서 자체는 ssh_config(5)
예제에서 다소 희소하지만 문서화를 통해이 작업을 수행 할 수 있습니다 . 이 형식은 ssh_config(5)
구문 의 한계에 의해 제한 되기는하지만 SSH 구성으로 복잡성을 푸시하려는 경우에 적합 할 수 있으며 원하는 결과를 위해 약간의 조정이 필요할 수 있습니다. 특히, 사용자 지정 포트를 설정할 수 없거나 이전 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