… Natürlich kann gpg2 den geheimen Schlüssel nicht finden, weil er in der falschen Datei sucht.
Das ist nicht die einzige Datei, die es betrachtet.
In GnuPG 1.x (und 2.0) hatte das "Secring" früher eine doppelte Kopie der öffentlichen Daten Ihres Keyblocks, so dass es vollständig in sich geschlossen war (und der einzige Unterschied zwischen gpg -k
und gpg -K
war, welche Datei es lesen würde)., aber gleichzeitig schwieriger für das Programm zu halten.
In GnuPG 2.1 werden geheime Schlüssel jetzt unabhängig voneinander gespeichert - sie werden vom gpg-agent verwaltet, der sie aufbewahrt ~/.gnupg/private-keys-v1.d/
. Also müssen beide gpg -k
und gpg -K
jetzt die OpenPGP-Informationen aus dem Pubring lesen, aber der letztere fragt gpg-agent zusätzlich, welche Zertifikate geheimen Schlüsseln zugeordnet sind. Wenn Sie strace verwenden, sollten Sie connect()
unmittelbar nach dem Lesen des Pubs einen Anruf bemerken.
Wenn GnuPG die Schlüssel nicht automatisch migriert, importieren Sie einfach die gesamte Verschlüsselung direkt:
gpg2 --import ~/.gnupg/secring.gpg
So prüfen Sie den Inhalt des Agenten manuell:
$ gpg-connect-agent > keyinfo - list S KEYINFO 926145FFCA32B3E6E079A0CF73EA77C40733A349 D - - - P - - - S KEYINFO BACFB81EAFC864F4AB2926E8B1F55AD579F78D1A D - - - P - - - S KEYINFO FF3D1DD51B9C79E148CCCEA5F7F3E25EC96048B7 D - - - P - - - S KEYINFO 4D29EF1460F164CDB11D0FC0247214660ACDD60F D - - - P - - - S KEYINFO 06B13685B9AA429B9CABCE480930D74B991C8DF0 D - - - P - - - S KEYINFO B28DB8D045654E8A6A40466A07FCD9E432935E29 D - - - P - - - OK > / tschüss $
Dies sind "Keygrips" - vergleichen Sie sie mit der GnuPG-Verschlüsselung:
$ gpg --list-secret-keys --with-keygrip /home/fred/.gnupg/pubring.kbx -------------------------------- sec ed25519 2018-08-18 [SC] 2357E133AD5D24F6CB2C1B0CEF4F7ED27E252632 Keygrip = 4D29EF1460F164CDB11D0FC0247214660ACDD60F uid [ultimativ] Fred Foobar <fred@example.com>