From 2e07c0b3ed005cf2b5a5be571833bc65e0de1b76 Mon Sep 17 00:00:00 2001 From: Alex Dehnert Date: Sat, 15 Dec 2012 05:02:34 -0500 Subject: [PATCH] Add various sshroot options -l key lifetime (default: 15 minutes) -k key suffix to use (default: "root") -H hostname to use (default: local hostname, as derived by various checks) --- sshroot | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/sshroot b/sshroot index 5c41dfa..f4d8996 100755 --- a/sshroot +++ b/sshroot @@ -2,16 +2,29 @@ # 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 "$@" } @@ -19,7 +32,7 @@ function with-keys 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 "$@" @@ -31,11 +44,11 @@ shift 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 -- 2.34.1