agent.sh revision 294332
1193323Sed#	$OpenBSD: agent.sh,v 1.11 2015/03/03 22:35:19 markus Exp $
2193323Sed#	Placed in the Public Domain.
3193323Sed
4193323Sedtid="simple agent test"
5193323Sed
6193323SedSSH_AUTH_SOCK=/nonexistent ${SSHADD} -l > /dev/null 2>&1
7193323Sedif [ $? -ne 2 ]; then
8193323Sed	fail "ssh-add -l did not fail with exit code 2"
9193323Sedfi
10193323Sed
11193323Sedtrace "start agent"
12193323Sedeval `${SSHAGENT} -s` > /dev/null
13193323Sedr=$?
14193323Sedif [ $r -ne 0 ]; then
15249423Sdim	fail "could not start ssh-agent: exit code $r"
16249423Sdimelse
17193323Sed	${SSHADD} -l > /dev/null 2>&1
18193323Sed	if [ $? -ne 1 ]; then
19193323Sed		fail "ssh-add -l did not fail with exit code 1"
20249423Sdim	fi
21193323Sed	trace "overwrite authorized keys"
22193323Sed	printf '' > $OBJ/authorized_keys_$USER
23193323Sed	for t in ${SSH_KEYTYPES}; do
24296417Sdim		# generate user key for agent
25296417Sdim		rm -f $OBJ/$t-agent
26296417Sdim		${SSHKEYGEN} -q -N '' -t $t -f $OBJ/$t-agent ||\
27296417Sdim			 fail "ssh-keygen for $t-agent failed"
28296417Sdim		# add to authorized keys
29296417Sdim		cat $OBJ/$t-agent.pub >> $OBJ/authorized_keys_$USER
30296417Sdim		# add privat key to agent
31296417Sdim		${SSHADD} $OBJ/$t-agent > /dev/null 2>&1
32296417Sdim		if [ $? -ne 0 ]; then
33296417Sdim			fail "ssh-add did succeed exit code 0"
34193323Sed		fi
35296417Sdim	done
36296417Sdim	${SSHADD} -l > /dev/null 2>&1
37193323Sed	r=$?
38193323Sed	if [ $r -ne 0 ]; then
39193323Sed		fail "ssh-add -l failed: exit code $r"
40193323Sed	fi
41193323Sed	# the same for full pubkey output
42193323Sed	${SSHADD} -L > /dev/null 2>&1
43193323Sed	r=$?
44193323Sed	if [ $r -ne 0 ]; then
45193323Sed		fail "ssh-add -L failed: exit code $r"
46193323Sed	fi
47296417Sdim
48193323Sed	trace "simple connect via agent"
49193323Sed	for p in ${SSH_PROTOCOLS}; do
50296417Sdim		${SSH} -$p -F $OBJ/ssh_proxy somehost exit 5$p
51193323Sed		r=$?
52193323Sed		if [ $r -ne 5$p ]; then
53193323Sed			fail "ssh connect with protocol $p failed (exit code $r)"
54193323Sed		fi
55193323Sed	done
56193323Sed
57193323Sed	trace "agent forwarding"
58193323Sed	for p in ${SSH_PROTOCOLS}; do
59296417Sdim		${SSH} -A -$p -F $OBJ/ssh_proxy somehost ${SSHADD} -l > /dev/null 2>&1
60193323Sed		r=$?
61193323Sed		if [ $r -ne 0 ]; then
62193323Sed			fail "ssh-add -l via agent fwd proto $p failed (exit code $r)"
63296417Sdim		fi
64193323Sed		${SSH} -A -$p -F $OBJ/ssh_proxy somehost \
65193323Sed			"${SSH} -$p -F $OBJ/ssh_proxy somehost exit 5$p"
66193323Sed		r=$?
67296417Sdim		if [ $r -ne 5$p ]; then
68296417Sdim			fail "agent fwd proto $p failed (exit code $r)"
69193323Sed		fi
70193323Sed	done
71193323Sed
72193323Sed	trace "delete all agent keys"
73193323Sed	${SSHADD} -D > /dev/null 2>&1
74198090Srdivacky	r=$?
75198090Srdivacky	if [ $r -ne 0 ]; then
76198090Srdivacky		fail "ssh-add -D failed: exit code $r"
77296417Sdim	fi
78296417Sdim
79193323Sed	trace "kill agent"
80193323Sed	${SSHAGENT} -k > /dev/null
81193323Sedfi
82193323Sed