Changed gpg-agent plugin to allow forwarded ssh-agents

This commit is contained in:
Nuno Cardoso 2012-07-01 18:26:32 +01:00
commit 3609af76c2

View file

@ -8,19 +8,39 @@ function start_agent {
. ${GPG_ENV} > /dev/null
}
if [[ -n $SSH_AUTH_SOCK && -n $SSH_CONNECTION ]]; then
case $GPG_USE_FORWARDED_SSH_AGENT in
'always')
FOWARDED_AGENT=1
;;
'never')
;;
*)
echo "Use forwarded ssh-agent?(y/N) "
read
[[ $REPLY == 'y' ]] && FOWARDED_AGENT=1
esac
if [[ -n $FOWARDED_AGENT ]]; then
SSH_AUTH_SOCK_TMP=$SSH_AUTH_SOCK
fi
fi
# Source GPG agent settings, if applicable
if [ -f "${GPG_ENV}" ]; then
. ${GPG_ENV} > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep gpg-agent > /dev/null || {
command ps -ef | grep ${SSH_AGENT_PID} | grep gpg-agent > /dev/null || {
start_agent;
}
else
start_agent;
fi
[[ -n $FOWARDED_AGENT ]] && SSH_AUTH_SOCK=$SSH_AUTH_SOCK_TMP
export GPG_AGENT_INFO
export SSH_AUTH_SOCK
export SSH_AGENT_PID
GPG_TTY=$(tty)
export GPG_TTY