ฉันพยายามสร้างปัญหาที่คุณประสบอยู่ ฉันทำสิ่งต่อไปนี้:
$ 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>
$
ขอให้สังเกตว่ากระบวนการทำเครื่องหมายคีย์ว่า "เชื่อถือได้ในที่สุด"
ตอนนี้ฉันส่งออกกุญแจ:
$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
ตอนนี้ฉันนำเข้าฐานข้อมูล 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
ตอนนี้ถ้าฉันพยายามเข้ารหัสโดยใช้ keyrings ใหม่ที่ฉันได้รับ:
$ 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.
เหตุผลนี้เป็นรูปแบบ "เว็บแห่งความไว้วางใจ" ตามค่าเริ่มต้นเพื่อให้รหัสสาธารณะเชื่อถือได้ต้องใช้ใบรับรองความน่าเชื่อถือ 1 "ขั้นสุดท้าย" (โดยทั่วไปคุณต้องตรวจสอบตัวตนของบุคคลที่เกี่ยวข้องด้วยตนเอง) หรือใบรับรองความน่าเชื่อถือ 3 "น้อยที่สุด" (ที่บางคนที่คุณรู้จัก ใครจะรู้ว่าใครบางคนที่คุณรู้จัก ... ได้ลงนามในใบรับรอง)
เนื่องจาก gpg เป็นแอปพลิเคชันความปลอดภัยจึงเตือนคุณหากคุณพยายามเข้ารหัสให้กับรหัสที่ไม่อยู่ในรายการที่เชื่อถือได้ เหตุผลที่รหัสของคุณไม่น่าเชื่อถือในกรณีนี้นั้นง่าย เป็นเพราะคุณไม่ได้ส่งออกความสัมพันธ์ที่เชื่อถือได้จากอินสแตนซ์ gpg ก่อนหน้า หากต้องการทำสิ่งนี้ให้ใช้คำสั่ง --export-ownertrust และ --import-ownertrust
และเช่นเคยอ้างถึงหน้าคน