On November 20, 2019 7:41 AM, Jeffrey Walton wrote: > I'm having an annoying problem that I can't figure out. I hope Git has a > setting to fix it. > > I have a desktop workstation where I sit at the keyboard about 1/3 of the > time. Git signing works as expected. About 2/3 of the time I SSH into the > machine. Git signing does not work when SSH'd in. > > When Git signing fails over SSH an error looks like: > > $ git commit -S log.h -m "Remove unneeded header" > error: gpg failed to sign the data > fatal: failed to write commit object > > I just noticed this today (but it makes sense)... > > - Go to desktop workstation, log in > - Go to remote machine, log in > - Sign at remote machine over SSH > - Desktop workstation will open GUI password prompt > - Remote machine sign operation will hang until GUI prompt times-out > > The problem was reported to Ubuntu but no activity: > https://bugs.launchpad.net/ubuntu/+source/pinentry/+bug/1852696 . I would refer you to the GnuPG project lists for answers to this issue. However, AFAIK, gpg requires a real terminal from which to obtain a password with the intent of not allowing malicious code to capture the password by a man-in-the-middle attack. Depending on the platform, stdin is not acceptable. Check the GnuPG project common/ttyio.c module. It may be that your setup is not providing an apparent terminal so the prompt may actually be happening elsewhere than where you expect. I have had a similar issue with Jenkins when not running fully headless, and the password prompt was on the tty where Jenkins was started. This is unlikely a "hang" per se. Good luck, Randall