Udało mi się odtworzyć napotkany problem. Zrobiłem to, wykonując następujące czynności:
$ gpg --no-default-keyring --keyring ./test-keyring --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --gen-key
<specified parameters and let it do its thing>
gpg: key 58018BFE marked as ultimately trusted
public and secret key created and signed.
<snip>
$
Zauważ, że proces oznaczył klucz jako „ostatecznie zaufany”.
Teraz eksportuję klucze:
$gpg --no-default-keyring --keyring ./test-keyring --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --export-secret-keys -a >private.key
$gpg --no-default-keyring --keyring ./test-keyring --secret-keyring ./test-secring --trustdb-name ./test-trustdb --no-random-seed-file --export -a > public.key
Teraz importuję do nowej bazy danych gpg:
$gpg --no-default-keyring --keyring ./test2-keyring --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file --import public.key
$gpg --no-default-keyring --keyring ./test2-keyring --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file --import private.key
Teraz, gdy spróbuję zaszyfrować przy użyciu nowych kluczy, otrzymam:
$ gpg --no-default-keyring --keyring ./test2-keyring --secret-keyring ./test2-secring --trustdb-name ./test2-trustdb --no-random-seed-file -r Fake -e
gpg: AE3034E1: There is no assurance this key belongs to the named user
pub 1024R/AE3034E1 2013-06-13 Fake User <fake@example.com>
Primary key fingerprint: AD4D BAFB 3960 6F9D 47C1 23BE B2E1 67A6 5801 8BFE
Subkey fingerprint: 58F2 3669 B8BD 1DFC 8B12 096F 5D19 AB91 AE30 34E1
It is NOT certain that the key belongs to the person named
in the user ID. If you *really* know what you are doing,
you may answer the next question with yes.
Powodem tego jest model „sieci zaufania”. Domyślnie, aby zaufać kluczowi publicznemu, wymaga albo 1 „ostatecznego” certyfikatu zaufania (zazwyczaj tam, gdzie osobiście zweryfikowałeś tożsamość zaangażowanych osób), albo 3 „marginalnych” certyfikatów zaufania (w przypadku kogoś, kogo znasz, kto zna kogoś, kogo znasz ... podpisał certyfikat).
Ponieważ gpg jest aplikacją zabezpieczającą, ostrzega, jeśli próbujesz zaszyfrować klucz, który nie jest wymieniony jako zaufany. Powód, dla którego twój klucz nie jest zaufany w tym przypadku, jest prosty. Jest tak, ponieważ nie wyeksportowałeś relacji zaufania z poprzedniej instancji gpg. Aby to zrobić, użyj poleceń --export-ownertrust i --import-ownertrust.
Jak zawsze, zajrzyj na stronę podręcznika .