From 772fed9938bd88cfb37c1eca92e3b4d127ae2eeb Mon Sep 17 00:00:00 2001 From: Carl Kittelberger Date: Wed, 15 Jun 2022 17:09:14 +0200 Subject: [PATCH] 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. --- home/dotfiles/zshrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/home/dotfiles/zshrc b/home/dotfiles/zshrc index f6cf99d..ff235a9 100644 --- a/home/dotfiles/zshrc +++ b/home/dotfiles/zshrc @@ -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