Journal 2023-02-02

<!-- Morning -->

GPG Custom Home Nixos

If you configure a different $GNUPGHOME, the gpgconf --list-dirs tool will return the socket directories as /run/user/$(id)/gnupg/<hash>/S.gpg-agent.socket the directories. Where the hash is the GCRY_MD_SHA1 hash of the GNUPGHOME.event.FootnoteReference

If your using NixOS option programs.gnupg.agent.enable the user service will put the socket in the wrong path. You need to set the ListeningStream to the correct path.

{
    systemd.user.sockets.gpg-agent.listenStreams = [ "" "%t/gnupg/d.8jmbbcqh9gemi75at4554oo4/S.gpg-agent" ];
    systemd.user.sockets.gpg-agent-ssh.listenStreams = [ "" "%t/gnupg/d.8jmbbcqh9gemi75at4554oo4/S.gpg-agent.ssh" ];
    systemd.user.sockets.gpg-agent-extra.listenStreams = [ "" "%t/gnupg/d.8jmbbcqh9gemi75at4554oo4/S.gpg-agent.extra" ];
}

The first "" empty string is to reset the option for the override.

Then you can configure the environment variables as usual: export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)".

<!-- What do I want to do today? --> <!-- Evening --> <!-- What did I learn today? --> <!-- Things I learned --> <!-- Useful tools and libraries -->
1
Source
[ArchWiki - GnuPG](https://wiki.archlinux.org/title/GnuPG#Set_SSH_AUTH_SOCK)