aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sh/profile.d/keychain.sh15
-rw-r--r--sh/shrc.d/keychain.sh5
2 files changed, 8 insertions, 12 deletions
diff --git a/sh/profile.d/keychain.sh b/sh/profile.d/keychain.sh
index 55306ad4..e5d46a41 100644
--- a/sh/profile.d/keychain.sh
+++ b/sh/profile.d/keychain.sh
@@ -1,17 +1,12 @@
# ssh-askpass setup
-if command -v ssh-askpass >/dev/null 2>&1 ; then
- SSH_ASKPASS=$(command -v ssh-askpass)
+[ -n "${SSH_ASKPASS:="$(command -v ssh-askpass 2>&1)"}" ] &&
export SSH_ASKPASS
-fi
# keychain setup
if command -v keychain >/dev/null 2>&1 ; then
- eval "$(TERM=${TERM:-ansi} keychain \
- --eval --ignore-missing --quiet id_dsa id_rsa id_ecsda)"
- # Set and export TTY/GPG_TTY for interactive shells
- if [ -t 0 ] ; then
- GPG_TTY=$(tty)
- export GPG_TTY
- fi
+ # Run keychain as quickly and quietly as possible
+ eval "$(TERM=${TERM:-ansi} keychain \
+ --eval --ignore-missing --quick --quiet \
+ id_dsa id_rsa id_ecsda)"
fi
diff --git a/sh/shrc.d/keychain.sh b/sh/shrc.d/keychain.sh
index 82f83473..e625d704 100644
--- a/sh/shrc.d/keychain.sh
+++ b/sh/shrc.d/keychain.sh
@@ -1,3 +1,4 @@
-# If GPG_TTY is set, update it
-[ -n "$GPG_TTY" ] || return
+# If GPG_AGENT_INFO is set, update GPG_TTY for clean use of pinentry(1) etc
+[ -n "$GPG_AGENT_INFO" ] || return
GPG_TTY=$(tty)
+export GPG_TTY