Add a wrapper for using cassh with a keyfile
This commit is contained in:
parent
f8ca9d4974
commit
8db9f9c7de
2
Makefile
2
Makefile
@ -24,7 +24,7 @@ V = 0
|
|||||||
PREFIX = /usr/local
|
PREFIX = /usr/local
|
||||||
MANPREFIX = ${PREFIX}/man
|
MANPREFIX = ${PREFIX}/man
|
||||||
|
|
||||||
BIN = cassh
|
BIN = cassh cassh-keyfile
|
||||||
MAN1 = ${BIN:=.1}
|
MAN1 = ${BIN:=.1}
|
||||||
SRC = ${BIN:=.sh} ${MAN1}
|
SRC = ${BIN:=.sh} ${MAN1}
|
||||||
|
|
||||||
|
64
cassh-keyfile.1
Normal file
64
cassh-keyfile.1
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
.\" cassh - Manager for an OpenSSH Certification Authority
|
||||||
|
.\"
|
||||||
|
.\" Written in 2022 by Lucas
|
||||||
|
.\"
|
||||||
|
.\" To the extent possible under law, the author(s) have dedicated all
|
||||||
|
.\" copyright and related and neighboring rights to this software to the
|
||||||
|
.\" public domain worldwide. This software is distributed without any
|
||||||
|
.\" warranty.
|
||||||
|
.\"
|
||||||
|
.\" You should have received a copy of the CC0 Public Domain Dedication
|
||||||
|
.\" along with this software. If not, see
|
||||||
|
.\" <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||||
|
.\"
|
||||||
|
.Dd March 01, 2022
|
||||||
|
.Dt CASSH-KEYFILE 1
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm cassh-keyfile
|
||||||
|
.Nd Wrapper for using a private key file with cassh
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
.Nm
|
||||||
|
.Ar private_key
|
||||||
|
.Cm cassh_command
|
||||||
|
.Op Ar options ...
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
.Xr cassh 1
|
||||||
|
requires a running
|
||||||
|
.Xr ssh-agent 1
|
||||||
|
with the Certification Authority private key already loaded.
|
||||||
|
.Nm
|
||||||
|
provides a thin wrapper around
|
||||||
|
.Xr cassh 1 ,
|
||||||
|
initiating an
|
||||||
|
.Xr ssh-agent 1
|
||||||
|
instance and loading the Certification Authority private key from
|
||||||
|
.Ar private_key
|
||||||
|
file before calling
|
||||||
|
.Xr cassh 1 .
|
||||||
|
The
|
||||||
|
.Xr ssh-agent 1
|
||||||
|
instance exits when the commands are completed.
|
||||||
|
.Pp
|
||||||
|
.Nm
|
||||||
|
will only instantiate an
|
||||||
|
.Xr ssh-agent 1
|
||||||
|
if
|
||||||
|
.Cm cassh_command
|
||||||
|
does need one.
|
||||||
|
.Sh EXIT STATUS
|
||||||
|
.Ex -std
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr ssh-agent 1 ,
|
||||||
|
.Xr ssh-keygen 1
|
||||||
|
.Sh AUTHORS
|
||||||
|
.An Lucas
|
||||||
|
.Sh LICENSE
|
||||||
|
.Nm
|
||||||
|
is in the public domain.
|
||||||
|
.Pp
|
||||||
|
To the extent possible under law, the author(s) have dedicated all
|
||||||
|
copyright and related and neighboring rights to this software to the
|
||||||
|
public domain worldwide.
|
||||||
|
.Pp
|
||||||
|
.Lk http://creativecommons.org/publicdomain/zero/1.0/
|
45
cassh-keyfile.sh
Normal file
45
cassh-keyfile.sh
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# cassh - Manager for an OpenSSH Certification Authority
|
||||||
|
#
|
||||||
|
# Written in 2022 by Lucas
|
||||||
|
#
|
||||||
|
# To the extent possible under law, the author(s) have dedicated all
|
||||||
|
# copyright and related and neighboring rights to this software to the
|
||||||
|
# public domain worldwide. This software is distributed without any
|
||||||
|
# warranty.
|
||||||
|
# You should have received a copy of the CC0 Public Domain Dedication
|
||||||
|
# along with this software. If not, see
|
||||||
|
# <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||||||
|
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
cat - <<EOF >&2
|
||||||
|
Usage:
|
||||||
|
${0##*/} private_key cassh_command [options ...]
|
||||||
|
EOF
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# -lt 2 ]; then
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
|
||||||
|
cassh_command=$2
|
||||||
|
needs_agent=false
|
||||||
|
case $cassh_command in
|
||||||
|
issue)
|
||||||
|
needs_agent=true
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if $needs_agent; then
|
||||||
|
ssh-agent sh -s "$@" <<'EOF'
|
||||||
|
ssh-add -q "$1" && shift && cassh "$@"
|
||||||
|
rc=$?
|
||||||
|
ssh-agent -k >/dev/null
|
||||||
|
exit $rc
|
||||||
|
EOF
|
||||||
|
else
|
||||||
|
shift
|
||||||
|
cassh "$@"
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user