Jeder OpenPGP-Schlüssel besteht aus mehreren unabhängigen Schlüsselpaaren (Unterschlüsseln), die normalerweise zu unterschiedlichen Zwecken verwendet werden (z. B. ein Zertifizierungs- und Signatur-Unterschlüssel, ein Verschlüsselungs-Unterschlüssel usw.).
In GnuPG 2.1 und höher werden private Schlüssel in gpg-agent gespeichert ~/.gnupg/private-keys-v1.d
und von diesem verwaltet . Für jeden Unterschlüssel gibt es eine separate Datei, die mit Ihrer Passphrase verschlüsselt ist. Dies bedeutet, dass Sie gpg-agent problemlos umgehen können, aber selbst wenn Sie es tun, können Sie die Schlüsseldateien nicht entsperren, ohne Ihre Passphrase zu kennen.
Technisch gesehen kann jede Schlüsseldatei mit einer anderen Passphrase verschlüsselt werden (obwohl die Benutzeroberfläche von gpg dies normalerweise nicht bietet). Wenn gpg-agent Ihre Passphrasen beispielsweise in GNOME Keyring speichert, werden sie auch für jeden Unterschlüssel separat gespeichert, ohne zu prüfen, ob sie identisch sind.
Es ist daher möglich, dass Ihre Passphrase nur für den Verschlüsselungsunterschlüssel "gespeichert" wurde, nicht jedoch für den Signaturunterschlüssel. Da sie identisch sind, sollte es ausreichend sein, die gespeicherte Passphrase einfach von GNOME Keyring abzurufen.
Verwenden Sie secret-tool
GNOME Keyring für Ihre Passwörter zu suchen, und sehen, ob einer von ihnen arbeiten:
$ secret-tool search --all xdg:schema org.gnupg.Passphrase
(Sie können auch das grafische Programm Seahorse von GNOME, auch "Passwords & Keys" genannt, verwenden, aber es neigt zum Absturz oder zum Einfrieren und ist daher nicht annähernd so nützlich.)