(While this relates to Windows, I am using the "vanilla" gpg build, not the gpg4win bundle build. I get the old school pinentry dialog, etc. Hopefully this is in the right place.)
I upgraded my machines to gpg-2.3.1, as I was hoping to test gpg-card for some certain scenarios (unfortunately it doesn't seem to support --fake-system-time as I need, but that's a separate issue).
On my Windows machine, I removed gpg4win, ensured all traces of it were gone (including killed any running gpg/gpg-agent/scdaemon procesess). Then I installed gpg-2.3.1.
For the most part, it works as expected, however, I am having to regularly kill gpg-agent.exe in order for my Yubikey-based OpenPGP smart-card to work.
This clearly shows the issue. I did not touch my yubikey at any point during this sequence:
# step 1: be connected to SSH via yubikey # step 2: disconnect, remove yubikey, go for walk # step 3: return home, plug in yubikey again # step 4: PS C:\Users\colem> gpg --card-status gpg: OpenPGP card not available: General error PS C:\Users\colem> taskkill /IM "gpg-agent.exe" /F SUCCESS: The process "gpg-agent.exe" with PID 16004 has been terminated. PS C:\Users\colem> gpg --card-status Reader ...........: Yubico Yubikey 4 OTP U2F CCID 0 Application ID ...: D2760001240100000006071267080000 Application type .: OpenPGP # ...etc