diff --git a/bin/startagent b/bin/startagent index 1e451dc..514eda0 100755 --- a/bin/startagent +++ b/bin/startagent @@ -109,21 +109,9 @@ while :; do esac done -SCRIPTENTRY -[ -z "${SSH_IDENTITIES_DIR+x}" ] && { SSH_IDENTITIES_DIR="${SSH_IDENTITIES_DEFAULT_DIR-${HOME}/.ssh/identities}"; export SSH_IDENTITIES_DIR; } -[ -z "${SSH_AGENTS_DIR+x}" ] && { SSH_AGENTS_DIR=${SSH_AGENTS_DEFAULT_DIR-~/.ssh/agents}; export SSH_AGENTS_DIR; } -[ -z "${SSH_AGENT_SOCKETS_DIR+x}" ] && { SSH_AGENT_SOCKETS_DIR=${SSH_AGENT_SOCKETS_DEFAULT_DIR-~/.ssh/agents}; export SSH_AGENT_SOCKETS_DIR; } -[ -z "${SSH_AGENT_OPTIONS+x}" ] && { SSH_AGENT_OPTIONS=${SSH_AGENT_DEFAULT_OPTIONS--t 7200 }; export SSH_AGENT_OPTIONS; } -logtrace " SSH_AGENTS_DIR: $SSH_AGENTS_DIR" -logtrace "SSH_AGENT_SOCKETS_DIR: $SSH_AGENT_SOCKETS_DIR" -logtrace " SSH_IDENTITIES_DIR: $SSH_IDENTITIES_DIR" -[ -z "${SSH_AGENTS_DIR-x}" ] || mkdir -vp "$SSH_AGENTS_DIR" -[ -z "${SSH_AGENT_SOCKETS_DIR-x}" ] || mkdir -vp "$SSH_AGENT_SOCKETS_DIR" -[ -z "${SSH_IDENTITIES_DIR-x}" ] || mkdir -vp "$SSH_IDENTITIES_DIR" - - agent_start_or_restart () { + logtrace "agent_start_or_restart" # If DISPLAY is set, ssh-add calls ssh-askpass, and if its in remote-terminal, it wont work # So remember and unset DISPLAY, and set it at the end again, if it was set before [ $DISPLAY ] && local DISPLAY_ORIG=$DISPLAY @@ -220,6 +208,7 @@ $(ssh_runinagent $agentfile ssh-add -l)" agent_load_identity_keys () { + logtrace "agent_load_identity_keys" # If DISPLAY is set, ssh-add calls ssh-askpass, and if its in remote-terminal, it wont work # So remember and unset DISPLAY, and set it at the end again, if it was set before [ $DISPLAY ] && local DISPLAY_ORIG=$DISPLAY @@ -276,9 +265,9 @@ agent_load_identity_keys () { # load tokens for pubkey in $(ls ${SSH_IDENTITIES_DIR}/${ssh_identity}/id_*|grep "pub$\|public$"|grep -v "cert.pub"); do if $( ls ${pubkey%.pub} 1>/dev/null 2>&1);then - echo "pubkey with privkey: $pubkey" + logdebug "pubkey with privkey: $pubkey" else - echo "pubkey without privkey: $pubkey" + logdebug "pubkey without privkey: $pubkey" pubkeysonly+=($pubkey) fi if [ -e "${pubkey%.pub}-cert.pub" ]; then @@ -309,11 +298,11 @@ agent_load_identity_keys () { logtrace "fingerprints: ${fingerprints[*]}" logtrace "tokenfingerprints count: ${#tokenfingerprints[@]}" - if [ ${#tokenfingerprints[@]} -gt 1 ]; then - logerr "Found ${#tokenfingerprints[@]} in p11-kit-proxy! Check if only one token is plugged into your computer" - else - tokenfingerprint=${tokenfingerprints[0]} - logtrace "tokenfingerprint: ${tokenfingerprint}" +# if [ ${#tokenfingerprints[@]} -gt 1 ]; then +# logerr "Found ${#tokenfingerprints[@]} in p11-kit-proxy! Check if only one token is plugged into your computer" +# else + tokenfingerprint=${tokenfingerprints[0]} + logtrace "tokenfingerprint: ${tokenfingerprint}" if [[ "${fingerprints[@]}" =~ "$tokenfingerprint" ]]; then logdebug "token: $key ($tokenfingerprint) is loaded" check_pubkeysonly @@ -330,7 +319,7 @@ agent_load_identity_keys () { logdebug "$(ssh_runinagent $agentfile ssh-add -v ${SSH_ADD_OPTIONS} -e ${key} 2>&1)" $remove || logdebug "$(ssh_runinagent $agentfile ssh-add ${SSH_ADD_OPTIONS} -s ${key} 2>&1)" fi - fi +# fi done fi loginfo "currently loaded keys after action: $(ssh_runinagent $agentfile ssh-add -l|wc -l)" @@ -383,6 +372,19 @@ ssh_runinagent () { } +SCRIPTENTRY +[ -z "${SSH_IDENTITIES_DIR+x}" ] && { SSH_IDENTITIES_DIR="${SSH_IDENTITIES_DEFAULT_DIR-${HOME}/.ssh/identities}"; export SSH_IDENTITIES_DIR; } +[ -z "${SSH_AGENTS_DIR+x}" ] && { SSH_AGENTS_DIR=${SSH_AGENTS_DEFAULT_DIR-~/.ssh/agents}; export SSH_AGENTS_DIR; } +[ -z "${SSH_AGENT_SOCKETS_DIR+x}" ] && { SSH_AGENT_SOCKETS_DIR=${SSH_AGENT_SOCKETS_DEFAULT_DIR-~/.ssh/agents}; export SSH_AGENT_SOCKETS_DIR; } +[ -z "${SSH_AGENT_OPTIONS+x}" ] && { SSH_AGENT_OPTIONS=${SSH_AGENT_DEFAULT_OPTIONS--t 7200 }; export SSH_AGENT_OPTIONS; } +logtrace " SSH_AGENTS_DIR: $SSH_AGENTS_DIR" +logtrace "SSH_AGENT_SOCKETS_DIR: $SSH_AGENT_SOCKETS_DIR" +logtrace " SSH_IDENTITIES_DIR: $SSH_IDENTITIES_DIR" +[ -z "${SSH_AGENTS_DIR-x}" ] || mkdir -vp "$SSH_AGENTS_DIR" +[ -z "${SSH_AGENT_SOCKETS_DIR-x}" ] || mkdir -vp "$SSH_AGENT_SOCKETS_DIR" +[ -z "${SSH_IDENTITIES_DIR-x}" ] || mkdir -vp "$SSH_IDENTITIES_DIR" + + if [[ $SSH_TTY || $X2GO_SESSION ]] ; then logdebug "Shell running with forwarded ssh-agent. Please add local token manually" check_token @@ -393,5 +395,6 @@ else ! $createonly && agent_load_identity_keys $ssh_identity res=0 fi + SCRIPTEXIT exit $res