You need a passphrase to unlock the secret key for user: "IT Partners <email@example.com>" 1024-bit DSA key, ID xxxxxxx, created 2005-04-21 gpg: cancelled by user gpg: skipped "xxxxxxxx": bad passphrase
Why does it punish me so? Turns out that pinentry, the program that asks for the passphrase, can't find a terminal, so can't run, and the key doesn't get cached.
To fix this, you can set the GPG_TTY variable, which I do in my .bashrc like so: export GPG_TTY=`tty`
Problem solved. And added to the WLUG wiki for posterity.