#!/bin/bash # If enable-ssh-support is present in gpg-agent.conf, export SSH_AUTH_SOCK # pointing at the gpg-agent's ssh-agent compatibility layer. # Authors: # rufo # Daniel Kahn Gillmor agent_sock=$(gpgconf --list-dirs agent-socket) export GPG_AGENT_INFO=${agent_sock}:0:1 # See https://bugs.debian.org/855868 # see gpgconf(1): $5 is the "okay" field. # see also https://dev.gnupg.org/T4866 and https://dev.gnupg.org/T4867 get_okay='BEGIN{ret=1} /^gpg-agent:/{if ($5 == "1") { ret=0; exit 0 } } END {exit ret}' if gpgconf --check-programs | awk -F: "$get_okay" && \ [ -n "$(gpgconf --list-options gpg-agent | \ awk -F: '/^enable-ssh-support:/{ print $10 }')" ]; then echo SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) echo GSM_SKIP_SSH_AGENT_WORKAROUND=true fi