WSL2: Gpg4win pinentry not available after PIN cache expires

David Tagatac david at tagatac.net
Fri May 31 04:15:00 CEST 2024


Hello,

My use case is:

   - Sign git commits in WSL2(Debian)
   - gpg-agent uses Gpg4win's pinentry GUI to allow PIN entry


This works well immediately after restarting my Windows PC. However, after
the PIN cache expires (currently set to 86400 seconds), signing commits
fails with

> ❯❯❯ gpg-agent
> gpg-agent[11881]: gpg-agent running and available
> ❯❯❯ git ci -S -m "asdf"
> error: gpg failed to sign the data
> fatal: failed to write commit object
>

gpg-agent.conf in WSL2:

>  ❯❯❯ cat ~/.gnupg/gpg-agent.conf

default-cache-ttl 86400
> max-cache-ttl 86400
> pinentry-program "/mnt/c/Program Files (x86)/GnuPG/bin/pinentry-basic.exe"


Versions:

   - Windows 11 build 22631.3593
   - Gpg4win 4.3.1
   - [WSL2/Debian] gpg-agent (GnuPG) 2.2.40


Things that don't fix the issue:

   - Reinstall Gpg4win
   - taskkill /f /im kleopatra.exe; taskkill /f /im gpg-agent.exe; taskkill
   /f /im scdaemon.exe; (And start Kleopatra again)
   - gpgconf --kill gpg-agent
   - wsl --shutdown


Things that do fix the issue:

   - Restart the PC
   - Use pinentry-curses
   - Use pinentry-tty


Is this a known issue, or can anyone offer any hints for debugging?

Thanks,
David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gnupg.org/pipermail/gnupg-users/attachments/20240530/4a7bb243/attachment.html>


More information about the Gnupg-users mailing list