Darren Tucker | a40d97f | 2013-05-17 14:44:53 +1000 | [diff] [blame] | 1 | # $OpenBSD: forcecommand.sh,v 1.2 2013/05/17 00:37:40 dtucker Exp $ |
Damien Miller | 7b1877c | 2006-07-24 15:31:41 +1000 | [diff] [blame] | 2 | # Placed in the Public Domain. |
| 3 | |
| 4 | tid="forced command" |
| 5 | |
| 6 | cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak |
| 7 | |
Darren Tucker | 56347ef | 2013-05-17 13:28:36 +1000 | [diff] [blame] | 8 | printf 'command="true" ' >$OBJ/authorized_keys_$USER |
Damien Miller | 7b1877c | 2006-07-24 15:31:41 +1000 | [diff] [blame] | 9 | cat $OBJ/rsa.pub >> $OBJ/authorized_keys_$USER |
Darren Tucker | 56347ef | 2013-05-17 13:28:36 +1000 | [diff] [blame] | 10 | printf 'command="true" ' >>$OBJ/authorized_keys_$USER |
Damien Miller | 7b1877c | 2006-07-24 15:31:41 +1000 | [diff] [blame] | 11 | cat $OBJ/rsa1.pub >> $OBJ/authorized_keys_$USER |
| 12 | |
| 13 | for p in 1 2; do |
| 14 | trace "forced command in key option proto $p" |
| 15 | ${SSH} -$p -F $OBJ/ssh_proxy somehost false \ || |
| 16 | fail "forced command in key proto $p" |
| 17 | done |
| 18 | |
Darren Tucker | 56347ef | 2013-05-17 13:28:36 +1000 | [diff] [blame] | 19 | printf 'command="false" ' >$OBJ/authorized_keys_$USER |
Damien Miller | 7b1877c | 2006-07-24 15:31:41 +1000 | [diff] [blame] | 20 | cat $OBJ/rsa.pub >> $OBJ/authorized_keys_$USER |
Darren Tucker | 56347ef | 2013-05-17 13:28:36 +1000 | [diff] [blame] | 21 | printf 'command="false" ' >>$OBJ/authorized_keys_$USER |
Damien Miller | 7b1877c | 2006-07-24 15:31:41 +1000 | [diff] [blame] | 22 | cat $OBJ/rsa1.pub >> $OBJ/authorized_keys_$USER |
| 23 | |
| 24 | cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy |
| 25 | echo "ForceCommand true" >> $OBJ/sshd_proxy |
| 26 | |
| 27 | for p in 1 2; do |
| 28 | trace "forced command in sshd_config overrides key option proto $p" |
| 29 | ${SSH} -$p -F $OBJ/ssh_proxy somehost false \ || |
| 30 | fail "forced command in key proto $p" |
| 31 | done |
| 32 | |
| 33 | cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy |
| 34 | echo "ForceCommand false" >> $OBJ/sshd_proxy |
| 35 | echo "Match User $USER" >> $OBJ/sshd_proxy |
| 36 | echo " ForceCommand true" >> $OBJ/sshd_proxy |
| 37 | |
| 38 | for p in 1 2; do |
| 39 | trace "forced command with match proto $p" |
| 40 | ${SSH} -$p -F $OBJ/ssh_proxy somehost false \ || |
| 41 | fail "forced command in key proto $p" |
| 42 | done |