From e36adb3c711ed716f5775f0b4b1a8d8d970bbabe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Thu, 24 Sep 2020 13:05:26 +0200 Subject: [PATCH] rename script, improve loggin --- bash_completion.d/ssh-agent-start-or-restart | 14 ++++++++++++++ bin/{ssh-agent-start-or-restart => startagent} | 16 ++++++++++------ functions.sh | 4 ++-- logging | 10 +++++----- 4 files changed, 31 insertions(+), 13 deletions(-) create mode 100644 bash_completion.d/ssh-agent-start-or-restart rename bin/{ssh-agent-start-or-restart => startagent} (95%) diff --git a/bash_completion.d/ssh-agent-start-or-restart b/bash_completion.d/ssh-agent-start-or-restart new file mode 100644 index 0000000..72f7f15 --- /dev/null +++ b/bash_completion.d/ssh-agent-start-or-restart @@ -0,0 +1,14 @@ +#!/bin/bash + +function _sshidentities() { + [ -z "${SSH_IDENTITIES_DIR+x}" ] && { SSH_IDENTITIES_DIR="${SSH_IDENTITIES_DEFAULT_DIR-${HOME}/.ssh/identities}"; export SSH_IDENTITIES_DIR; } + + COMPREPLY=() + local CUR KEYS + CUR="${COMP_WORDS[COMP_CWORD]}" + KEYS="$(find $SSH_IDENTITIES_DEFAULT_DIR -maxdepth 1 -mindepth 1 -type d -exec basename {} \;)" + COMPREPLY=( $(compgen -W "${KEYS}" -- ${CUR}) ) + return 0 +} +complete -F _sshidentities startagent loadagent + diff --git a/bin/ssh-agent-start-or-restart b/bin/startagent similarity index 95% rename from bin/ssh-agent-start-or-restart rename to bin/startagent index 1c911ea..53fce93 100755 --- a/bin/ssh-agent-start-or-restart +++ b/bin/startagent @@ -72,7 +72,7 @@ while :; do exit 1 ;; *) - # ssh_identity=${1-${SSH_DEFAULT_IDENTITY-default}} + ssh_identity=${1-${SSH_DEFAULT_IDENTITY}} break ;; esac @@ -211,12 +211,15 @@ agent-load-identity-keys () { # fi # fi # - logdebug "fingerprints: ${fingerprints[*]}" + logdebug "fingerprints from loaded keys:" + for f in ${fingerprints[*]};do + logdebug "$f" + done if ! $tokenonly ; then for key in $(ls ${SSH_IDENTITIES_DIR}/${ssh_identity}/id_*|grep -v "pub$\|so$\|config$\|public$"); do fingerprint=$(ssh-keygen -l -f $key|awk '{print $2}') if [[ ${fingerprints[*]} =~ "$fingerprint" ]]; then - logdebug "key: $key is loaded" >&2 + logdebug "key: $(basename $key) (with fp $fingerprint) is loaded" >&2 if $readd || $remove ; then $readd && logwarn "readd key $key" >&2 $remove && logwarn "remove key $key" >&2 @@ -225,7 +228,7 @@ agent-load-identity-keys () { fi else logwarn "key: $key is not loaded -> load it" >&2 - loginfo "$(ssh-runinagent $agentfile ssh-add ${SSH_ADD_OPTIONS} -d ${key} 2>&1)" + #loginfo "$(ssh-runinagent $agentfile ssh-add ${SSH_ADD_OPTIONS} -d ${key} 2>&1)" $remove || loginfo "$(ssh-runinagent $agentfile ssh-add ${SSH_ADD_OPTIONS} ${key} 2>&1)" fi done @@ -234,7 +237,7 @@ agent-load-identity-keys () { for token in $(ls ${SSH_IDENTITIES_DIR}/${ssh_identity}/*|grep "\.so$"); do tokenfingerprint="$(ssh-keygen -l -D $token|tr -s ' '|awk '{print $2}')" if [[ ${fingerprints[*]} =~ "$tokenfingerprint" ]]; then - logdebug "token: $token is loaded" >&2 + logdebug "token: $token ($fingerprint) is loaded" >&2 if $readd || $remove ; then $readd && logwarn "readd token $token" >&2 $remove && logwarn "remove token $token" >&2 @@ -248,7 +251,8 @@ agent-load-identity-keys () { fi done fi - logdebug "current loaded keys: $(ssh-runinagent $agentfile ssh-add -l)" + logdebug "currently loaded keys: +$(ssh-runinagent $agentfile ssh-add -l)" else logwarn "ssh-identity $ssh_identity is not configured. Please create $identitydir and add keys" fi diff --git a/functions.sh b/functions.sh index e9f5c9e..91349ce 100755 --- a/functions.sh +++ b/functions.sh @@ -770,7 +770,7 @@ token(){ # Usage: # token will load token in agent. does nothing, if token is already loaded # token -r|-f|--reload-token will remove token from agent and add it again (if plugged off and plugged in again - ssh-agent-start-or-restart -t $1 $2 + startagent -t $1 $2 } tokenold () { @@ -866,7 +866,7 @@ token-list-objects() { loadagent() { ENTRY local af - af=$(ssh-agent-start-or-restart --create-only $1 ) + af=$(startagent --create-only $1 ) loginfo "Load agent from $af" eval $(<$af) # . $af diff --git a/logging b/logging index 10af65f..9612265 100644 --- a/logging +++ b/logging @@ -65,7 +65,7 @@ function logerror(){ declare -a loglevels loglevels=() if [[ ! ${loglevels[*]} =~ "${LOGLEVEL-$LOGLEVEL_DEFAULT}" ]];then - echo $opts $msg >&2 + echo $opts "$msg" >&2 fi if [[ ! ${loglevels[*]} =~ "${FILELOGLEVEL-$FILELOGLEVEL_DEFAULT}" ]];then echo "[$timeAndDate] [ERROR] $msg" >> $SCRIPT_LOG @@ -86,7 +86,7 @@ function logwarn(){ declare -a loglevels loglevels=("ERROR" ) if [[ ! ${loglevels[*]} =~ "${LOGLEVEL-$LOGLEVEL_DEFAULT}" ]];then - echo $opts $msg >&2 + echo $opts "$msg" >&2 fi if [[ ! ${loglevels[*]} =~ "${FILELOGLEVEL-$FILELOGLEVEL_DEFAULT}" ]];then echo "[$timeAndDate] [WARN] $msg" >> $SCRIPT_LOG @@ -107,7 +107,7 @@ function loginfo(){ declare -a loglevels loglevels=("ERROR" "WARN" ) if [[ ! ${loglevels[*]} =~ "${LOGLEVEL-$LOGLEVEL_DEFAULT}" ]];then - echo $opts $msg >&2 + echo $opts "$msg" >&2 fi if [[ ! ${loglevels[*]} =~ "${FILELOGLEVEL-$FILELOGLEVEL_DEFAULT}" ]];then echo "[$timeAndDate] [INFO] $msg" >> $SCRIPT_LOG @@ -129,7 +129,7 @@ function logdebug(){ declare -a loglevels loglevels=("ERROR" "WARN" "INFO") if [[ ! ${loglevels[*]} =~ "${LOGLEVEL-$LOGLEVEL_DEFAULT}" ]];then - echo $opts $msg >&2 + echo $opts "$msg" >&2 fi if [[ ! ${loglevels[*]} =~ "${FILELOGLEVEL-$FILELOGLEVEL_DEFAULT}" ]];then echo "[$timeAndDate] [DEBUG] $msg" >> $SCRIPT_LOG @@ -150,7 +150,7 @@ function logtrace(){ declare -a loglevels loglevels=("ERROR" "WARN" "INFO" "DEBUG") if [[ ! ${loglevels[*]} =~ "${LOGLEVEL-$LOGLEVEL_DEFAULT}" ]];then - echo $opts $msg >&2 + echo $opts "$msg" >&2 fi if [[ ! ${loglevels[*]} =~ "${FILELOGLEVEL-$FILELOGLEVEL_DEFAULT}" ]];then echo "[$timeAndDate] [TRACE] $msg" >> $SCRIPT_LOG