# lifetime, in minutes
lifetime=15
+keysuffix=root
hostopt=""
[ -z "$hostopt" ] && hostopt="${HOSTNAME}"
[ -z "$hostopt" ] && hostopt=`uname -n 2>/dev/null || echo unknown`
-keys=~/.ssh/id_rsa_root
+
+while getopts "H:k:l:" opt; do
+ case "$opt" in
+ H) hostopt="$OPTARG";;
+ k) keysuffix="$OPTARG";;
+ l) lifetime="$OPTARG";;
+ \?) die "$0 [-H hostname] [-k keysuffix] [-l lifetime]"
+ esac
+done
+shift $(($OPTIND - 1))
+
+keys="$HOME/.ssh/id_rsa_$keysuffix"
+keychain_host="$hostopt-$keysuffix"
function with-keys
{
unset SSH_AUTH_SOCK SSH_AGENT_PID
- eval $(keychain --timeout $lifetime --eval --host "$hostopt-root" $keys)
+ eval $(keychain --timeout "$lifetime" --eval --host "$keychain_host" $keys)
export SSHROOT=1
exec "$@"
}
function with-agent
{
unset SSH_AUTH_SOCK SSH_AGENT_PID
- eval $(keychain --timeout $lifetime --eval --host "$hostopt-root")
+ eval $(keychain --timeout "$lifetime" --eval --host "$keychain_host")
export SSHROOT=1
echo with-agent: Running: "$@"
exec "$@"
case "$command" in
init)
echo "Loading default keys (lifetime $lifetime)..."
- with-agent ssh-add -t ${lifetime}m "$@" $keys
+ with-agent ssh-add -t "${lifetime}m" "$@" $keys
;;
add)
echo "Loading keys (lifetime $lifetime):" "$@"
- with-agent ssh-add -t ${lifetime}m "$@"
+ with-agent ssh-add -t "${lifetime}m" "$@"
;;
list)
with-agent ssh-add -l