I currently have a master key with three subkeys, one for signing, one for
encryption and one for authentication. I loaded the three subkeys on a
Yubikey NEO and everything works fine except the command fetch on a new
machine. (The master key is intended to live offline and only used to
occasionally re-issue or re-certify subkeys).
If I do a gpg --card-edit followed by a 'fetch', I get the error
gpg: requesting key AEB99527 from https server gist.githubusercontent.com
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
Where AEB99527 is the signing subkey identifier not the master key
identifier which is what it should be "fetching".
It appears to be pulling the key from the https server and comparing the key
identity with what it expects which appears to be the subkey instead of just
accepting the key data that is there which is the master public key which
includes the public keys of the subkeys. (There is no easy or supported way
that I am aware of to separate out the public key of a single subkey)
If I manually load the public key of the master (the one at the URL I
configured) and then run gpg --card-status everything works properly
(the resulting --list-secret shows as follows):
sec# 4096R/757C0180 2015-02-03 [expires: 2015-11-30]
uid John Tennyson
uid Elvish Wanderer aelana@me.com
uid Elvish Wanderer aelana@mac.com
uid John Tennyson jtennys@umass.edu
uid John Tennyson john.tennyson@me.com
uid John Tennyson john.tennyson@mac.com
uid John Tennyson john.tennyson@umass.edu
uid John Tennyson jtennyson@oit.umass.edu
uid Elvish Wanderer aelana@elfindreams.com
ssb> 2048R/AEB99527 2015-02-03
ssb> 2048R/CADC0F35 2015-02-03
ssb> 2048R/C40CA003 2015-02-03