1*47dd1d1bSDag-Erling Smørgrav#/bin/sh 2*47dd1d1bSDag-Erling Smørgrav 3*47dd1d1bSDag-Erling Smørgravset -xe 4*47dd1d1bSDag-Erling Smørgrav 5*47dd1d1bSDag-Erling Smørgravrm -f ca_key ca_key.pub 6*47dd1d1bSDag-Erling Smørgravrm -f user_key user_key.pub 7*47dd1d1bSDag-Erling Smørgravrm -f *.cert 8*47dd1d1bSDag-Erling Smørgrav 9*47dd1d1bSDag-Erling Smørgravssh-keygen -q -f ca_key -t ed25519 -C CA -N '' 10*47dd1d1bSDag-Erling Smørgravssh-keygen -q -f user_key -t ed25519 -C "user key" -N '' 11*47dd1d1bSDag-Erling Smørgrav 12*47dd1d1bSDag-Erling Smørgravsign() { 13*47dd1d1bSDag-Erling Smørgrav output=$1 14*47dd1d1bSDag-Erling Smørgrav shift 15*47dd1d1bSDag-Erling Smørgrav set -xe 16*47dd1d1bSDag-Erling Smørgrav ssh-keygen -q -s ca_key -I user -n user \ 17*47dd1d1bSDag-Erling Smørgrav -V 19990101:19991231 -z 1 "$@" user_key.pub 18*47dd1d1bSDag-Erling Smørgrav mv user_key-cert.pub "$output" 19*47dd1d1bSDag-Erling Smørgrav} 20*47dd1d1bSDag-Erling Smørgrav 21*47dd1d1bSDag-Erling Smørgravsign all_permit.cert -Opermit-agent-forwarding -Opermit-port-forwarding \ 22*47dd1d1bSDag-Erling Smørgrav -Opermit-pty -Opermit-user-rc -Opermit-X11-forwarding 23*47dd1d1bSDag-Erling Smørgravsign no_permit.cert -Oclear 24*47dd1d1bSDag-Erling Smørgrav 25*47dd1d1bSDag-Erling Smørgravsign no_agentfwd.cert -Ono-agent-forwarding 26*47dd1d1bSDag-Erling Smørgravsign no_portfwd.cert -Ono-port-forwarding 27*47dd1d1bSDag-Erling Smørgravsign no_pty.cert -Ono-pty 28*47dd1d1bSDag-Erling Smørgravsign no_user_rc.cert -Ono-user-rc 29*47dd1d1bSDag-Erling Smørgravsign no_x11fwd.cert -Ono-X11-forwarding 30*47dd1d1bSDag-Erling Smørgrav 31*47dd1d1bSDag-Erling Smørgravsign only_agentfwd.cert -Oclear -Opermit-agent-forwarding 32*47dd1d1bSDag-Erling Smørgravsign only_portfwd.cert -Oclear -Opermit-port-forwarding 33*47dd1d1bSDag-Erling Smørgravsign only_pty.cert -Oclear -Opermit-pty 34*47dd1d1bSDag-Erling Smørgravsign only_user_rc.cert -Oclear -Opermit-user-rc 35*47dd1d1bSDag-Erling Smørgravsign only_x11fwd.cert -Oclear -Opermit-X11-forwarding 36*47dd1d1bSDag-Erling Smørgrav 37*47dd1d1bSDag-Erling Smørgravsign force_command.cert -Oforce-command="foo" 38*47dd1d1bSDag-Erling Smørgravsign sourceaddr.cert -Osource-address="127.0.0.1/32,::1/128" 39*47dd1d1bSDag-Erling Smørgrav 40*47dd1d1bSDag-Erling Smørgrav# ssh-keygen won't permit generation of certs with invalid source-address 41*47dd1d1bSDag-Erling Smørgrav# values, so we do it as a custom extension. 42*47dd1d1bSDag-Erling Smørgravsign bad_sourceaddr.cert -Ocritical:source-address=xxxxx 43*47dd1d1bSDag-Erling Smørgrav 44*47dd1d1bSDag-Erling Smørgravsign unknown_critical.cert -Ocritical:blah=foo 45*47dd1d1bSDag-Erling Smørgrav 46*47dd1d1bSDag-Erling Smørgravsign host.cert -h 47*47dd1d1bSDag-Erling Smørgrav 48*47dd1d1bSDag-Erling Smørgravrm -f user_key ca_key user_key.pub ca_key.pub 49