Implement GnuPG SSH agent support.

Replaces SSH_AUTH_SOCK with GnuPG SSH agent if already running. Otherwise, can
be forced to be used by setting ZSH_GPG_SSH_AGENT=1.
master
Icedream 2022-06-15 17:09:14 +02:00
parent 4bfc1c741c
commit 772fed9938
Signed by: icedream
GPG Key ID: 468BBEEBB9EC6AEA
1 changed files with 9 additions and 0 deletions

View File

@ -21,6 +21,7 @@ ZSH_CUSTOM=${ZSH_CUSTOM:-1}
ZSH_DEFAULT_TERM=${ZSH_DEFAULT_TERM:-1}
ZSH_GCLOUD_FIXES=${ZSH_GCLOUD_FIXES:=$(when_binary_available gcloud)}
ZSH_GPG_PINENTRY_FIX=${ZSH_GPG_PINENTRY_FIX:-1}
ZSH_GPG_SSH_AGENT=${ZSH_GPG_SSH_AGENT:-$(has_binary gpgconf && [ -z "${SSH_AUTH_SOCK:-}" ] && [ -f $(gpgconf --list-dirs agent-ssh-socket) ] && printf 1 || printf 0)}
ZSH_LOGO_LS=${ZSH_LOGL_LS:-$(when_binary_available logo-ls)}
ZSH_PIPX=${ZSH_PIPX:-$(when_binary_available pipx)}
ZSH_POWERLINE="${ZSH_POWERLINE:-1}"
@ -231,6 +232,14 @@ if [ $ZSH_GPG_PINENTRY_FIX -gt 0 ]; then
fi
section_end
# gpg ssh agent
section "gpg ssh agent"
if [ $ZSH_GPG_SSH_AGENT -gt 0 ]; then
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
log "Changed SSH_AUTH_SOCK to $SSH_AUTH_SOCK (GnuPG SSH agent)"
gpgconf --launch gpg-agent
fi
# logo-ls
section "logo-ls"
if [ $ZSH_LOGO_LS -gt 0 ]; then