1# $OpenBSD: sshcfgparse.sh,v 1.3 2018/04/06 04:18:35 dtucker Exp $ 2# Placed in the Public Domain. 3 4tid="ssh config parse" 5 6verbose "reparse minimal config" 7(${SSH} -G -F $OBJ/ssh_config somehost >$OBJ/ssh_config.1 && 8 ${SSH} -G -F $OBJ/ssh_config.1 somehost >$OBJ/ssh_config.2 && 9 diff $OBJ/ssh_config.1 $OBJ/ssh_config.2) || fail "reparse minimal config" 10 11verbose "ssh -W opts" 12f=`${SSH} -GF $OBJ/ssh_config host | awk '/exitonforwardfailure/{print $2}'` 13test "$f" = "no" || fail "exitonforwardfailure default" 14f=`${SSH} -GF $OBJ/ssh_config -W a:1 h | awk '/exitonforwardfailure/{print $2}'` 15test "$f" = "yes" || fail "exitonforwardfailure enable" 16f=`${SSH} -GF $OBJ/ssh_config -W a:1 -o exitonforwardfailure=no h | \ 17 awk '/exitonforwardfailure/{print $2}'` 18test "$f" = "no" || fail "exitonforwardfailure override" 19 20f=`${SSH} -GF $OBJ/ssh_config host | awk '/clearallforwardings/{print $2}'` 21test "$f" = "no" || fail "clearallforwardings default" 22f=`${SSH} -GF $OBJ/ssh_config -W a:1 h | awk '/clearallforwardings/{print $2}'` 23test "$f" = "yes" || fail "clearallforwardings enable" 24f=`${SSH} -GF $OBJ/ssh_config -W a:1 -o clearallforwardings=no h | \ 25 awk '/clearallforwardings/{print $2}'` 26test "$f" = "no" || fail "clearallforwardings override" 27 28verbose "user first match" 29user=`awk '$1=="User" {print $2}' $OBJ/ssh_config` 30f=`${SSH} -GF $OBJ/ssh_config host | awk '/^user /{print $2}'` 31test "$f" = "$user" || fail "user from config, expected '$user' got '$f'" 32f=`${SSH} -GF $OBJ/ssh_config -o user=foo -l bar baz@host | awk '/^user /{print $2}'` 33test "$f" = "foo" || fail "user first match -oUser, expected 'foo' got '$f' " 34f=`${SSH} -GF $OBJ/ssh_config -lbar baz@host user=foo baz@host | awk '/^user /{print $2}'` 35test "$f" = "bar" || fail "user first match -l, expected 'bar' got '$f'" 36f=`${SSH} -GF $OBJ/ssh_config baz@host -o user=foo -l bar baz@host | awk '/^user /{print $2}'` 37test "$f" = "baz" || fail "user first match user@host, expected 'baz' got '$f'" 38 39# cleanup 40rm -f $OBJ/ssh_config.[012] 41