GPG matched the first part of the recipient that you typed in:
firstname.lastname@example.org # was typed in
email@example.com # ID that was matched
Only the last letter was missing. It should even work with only typing j since it would match the only key you've got (similar to "tab complete" in a terminal).
Try your command with not just omitting the last letter, but changing to a wrong letter in the email; it shouldn't match.
The reason is the default mode for specifying a user ID is a substring match, so your partial email typed in matched the full email of the user ID. There's a section on "How to Specify a User ID" in GPG's man page:
By substring match.
This is the default mode but applications may
want to explicitly indicate this by putting the
asterisk in front. Match is not case sensi‐
Here's a slightly different, condensed version on GnuPG.org:
How to specify a user ID
There are different ways on how to specify a user ID to GnuPG; here are some examples:
- :: Used to locate the default home directory.
- Here the key ID is given in the usual short form.
- 234AABBCC34567C4, 0F323456784E56EAB, 01AB3FED1347A5612, 0x234AABBCC34567C4 :: Here the key ID is given in the long form as used by OpenPGP.
- 1234343434343434C434343434343434, 123434343434343C3434343434343734349A3434, 0E12343434343434343434EAB3484343434343434, 0xE12343434343434343434EAB3484343434343434 :: The best way to specify a key ID is by using the fingerprint of the key. This avoids any ambiguities in case that there are duplicated key IDs (which are really rare for the long key IDs).
- Using an exact to match string. The equal sign indicates this.
- Using the email address part which must match exactly. The left angle bracket indicates this email address mode.
- All words must match exactly (not case sensitive) but can appear in any order in the user ID. Words are any sequences of letters, digits, the underscore and all characters with bit 7 set.
- Using the Local ID. This is a very low level method and should only be used by applications which really need it. The hash character indicates this method. An application should not assume that this is only a number.
- By case insensitive substring matching. This is the default mode but applications may want to explicitely indicate this by putting the asterisk in front.
And with any
gpg command it honors verbose flags (
-v), you can add multiple flags to get more "verbosity" / more info, I think 10 is the max, so try adding