agent.sh revision 1.12
1#	$OpenBSD: agent.sh,v 1.12 2017/04/30 23:34:55 djm Exp $
2#	Placed in the Public Domain.
3
4tid="simple agent test"
5
6SSH_AUTH_SOCK=/nonexistent ${SSHADD} -l > /dev/null 2>&1
7if [ $? -ne 2 ]; then
8	fail "ssh-add -l did not fail with exit code 2"
9fi
10
11trace "start agent"
12eval `${SSHAGENT} -s` > /dev/null
13r=$?
14if [ $r -ne 0 ]; then
15	fail "could not start ssh-agent: exit code $r"
16else
17	${SSHADD} -l > /dev/null 2>&1
18	if [ $? -ne 1 ]; then
19		fail "ssh-add -l did not fail with exit code 1"
20	fi
21	trace "overwrite authorized keys"
22	printf '' > $OBJ/authorized_keys_$USER
23	for t in ${SSH_KEYTYPES}; do
24		# generate user key for agent
25		rm -f $OBJ/$t-agent
26		${SSHKEYGEN} -q -N '' -t $t -f $OBJ/$t-agent ||\
27			 fail "ssh-keygen for $t-agent failed"
28		# add to authorized keys
29		cat $OBJ/$t-agent.pub >> $OBJ/authorized_keys_$USER
30		# add privat key to agent
31		${SSHADD} $OBJ/$t-agent > /dev/null 2>&1
32		if [ $? -ne 0 ]; then
33			fail "ssh-add did succeed exit code 0"
34		fi
35	done
36	${SSHADD} -l > /dev/null 2>&1
37	r=$?
38	if [ $r -ne 0 ]; then
39		fail "ssh-add -l failed: exit code $r"
40	fi
41	# the same for full pubkey output
42	${SSHADD} -L > /dev/null 2>&1
43	r=$?
44	if [ $r -ne 0 ]; then
45		fail "ssh-add -L failed: exit code $r"
46	fi
47
48	trace "simple connect via agent"
49	${SSH} -F $OBJ/ssh_proxy somehost exit 52
50	r=$?
51	if [ $r -ne 52 ]; then
52		fail "ssh connect with failed (exit code $r)"
53	fi
54
55	trace "agent forwarding"
56	${SSH} -A -F $OBJ/ssh_proxy somehost ${SSHADD} -l > /dev/null 2>&1
57	r=$?
58	if [ $r -ne 0 ]; then
59		fail "ssh-add -l via agent fwd failed (exit code $r)"
60	fi
61	${SSH} -A -F $OBJ/ssh_proxy somehost \
62		"${SSH} -F $OBJ/ssh_proxy somehost exit 52"
63	r=$?
64	if [ $r -ne 52 ]; then
65		fail "agent fwd failed (exit code $r)"
66	fi
67
68	trace "delete all agent keys"
69	${SSHADD} -D > /dev/null 2>&1
70	r=$?
71	if [ $r -ne 0 ]; then
72		fail "ssh-add -D failed: exit code $r"
73	fi
74
75	trace "kill agent"
76	${SSHAGENT} -k > /dev/null
77fi
78