Closed mythmon closed 7 years ago
Looks like the shell-out to gpg failed. Does the following work when you try it on the command line?
echo "foo" | /usr/bin/gpg2 --armor --sign -u dafe0a2f0b0290b57ac35186cd8d37a46031dc1c
Are you using something like a Yubikey or other crypto device?
I have a Yubikey, and have a detached master key I keep on a USB drive. Ideally I'd like the detached master key to not be involved.
@maxtaco's command works fine, and produced an armored PGP message.
maybe try again? sometimes gpg needs to compact its DB or something crazy like that and sends us a non-zero exit code as a result! likely it won't help, but there's a chance it will. i'm really not sure why it wouldn't work though if you can sign without an issue from the command-line directly
I've tried this several times, with the same result. By the way, that was the output when I have the master key attached. When I detach the master key, I get
▶ ERROR bad signature: Can't find a key for 74ab8817639d69c1: No keys match the given key IDs (error 1002)
I think that keybase is trying to use my master key instead of the available signing key, so it rejects the signature it got.
We'll take a look this upcoming sprint. Just to circle back, did you find a workaround or are you still blocked?
I did not find a work around.
@mythmon I had a similar issue. The cause turned out to be that I have two YubiKeys, each with a different signing subkey. When keybase asked GPG to sign the proof, it specified the primary key. When this happens, GPG will for some reason always choose the last (non-expired?) subkey with signing permissions, even if the private key for that subkey is not available. This seems like an oversight but maybe there's a reason for it. In any event, I was trying to use the first YubiKey I registered, but GPG wanted to use the second signing subkey. The solution for me ended up being to switch which key I keep in safe storage and use the second registered YubiKey as my primary. The keybase client was able to register my public key fine once I plugged in the second YubiKey.
@maxtaco, I am also having this issue, running Keybase 1.0.16. Would really appreciate a fix.
@spydar007 are you also running a yubikey? I can maybe look at your problem but no promises. Can you do a 'keybase log send'? Btw guys, the client is open source and we welcome patches.
I am not running YubiKey. I have just sent the log. Log ID: e6cc9c420ff9825b5c2e6a1c
For some reason we're failing to sign with your gpg when we shell out to it. It might be a pinentry problem, but I can't tell. What happens when you run:
echo "foo" | /usr/local/bin/gpg2 --no-tty -a --sign -u 221F38B1D3364A0B
?
I get:
gpg: signing failed: No pinentry
-----BEGIN PGP MESSAGE-----
Version: GnuPG v2
gpg: signing failed: No pinentry
The thing is, I have pinentry installed. The same happens if I run the command with 89ae437abb227a8ed5829ac4221f38b1d3364a0b
, which I tried earlier.
so this is a local misconfig on your part. my guess is once you get this working, then your login will work.
Completely removing all versions of pinentry and then reinstalling from source works. Thanks.
When I run keybase login, after entering a public name for this device, I get an error "ERROR GPG error: exit status 2", and the login fails. I'm running Arch Linux.
Here is the output of running
keybase -d login
: