ฉันพยายามเพิ่มรหัสผ่านลงในเครื่องมือจัดการรหัสผ่าน“ ผ่าน” แต่ความพยายามของฉันล้มเหลวด้วยข้อผิดพลาด GPG“ ไม่มีคีย์สาธารณะ” ทำไม?


27

ฉันกำลังพยายามติดตั้งPass: ตัวจัดการรหัสผ่าน Unix มาตรฐานอย่างไรก็ตามเมื่อฉันพยายามเพิ่มรหัสผ่านให้กับ appliation ฉันได้รับข้อผิดพลาดเหล่านี้

gpg: Kelly's Passwords: skipped: No public key
gpg: [stdin]: encryption failed: No public key

กุญแจสาธารณะของ GPG?

เมื่อฉันพิมพ์คำสั่งgpg --list-keysฉันจะได้รับ:

/home/khays/.gnupg/pubring.gpg
------------------------------
pub   2048R/64290B2D 2012-11-05
uid                  Kelly Hays <hays.kelly@gmail.com>
sub   2048R/0DF57DA8 2012-11-05

ฉันหลงทางเล็กน้อยเกี่ยวกับวิธีการแก้ไขปัญหานี้ความคิดใด ๆ

คำตอบ:


28

คุณสร้างที่เก็บรหัสผ่านได้อย่างไร pass init "Kelly's Passwords"? pass init 64290B2Dถ้าเป็นเช่นนี้เป็นความผิดที่คุณควรจะได้เรียกว่า

และถ้าเช่นนั้นpass insert fooจะล้มเหลวด้วย:

gpg: fooo: skipped: public key not found
gpg: [stdin]: encryption failed: public key not found

แล้วคุณจะให้ความไว้วางใจที่สำคัญของคุณเองก่อน ( gpg --edit-key 64290B2D, trust, 5, save)


ฉันจะเพิ่มสำหรับผู้ที่มีหนึ่งขั้นตอนหลังเหมือนฉันคุณควรเริ่มต้นคีย์ gpg ด้วยgpg --generate-key
ItayB

2
@ItayB คำสั่งเพื่อสร้างคีย์ gpg เป็นจริงgpg --gen-key(ใน gpg 1.4.20)
Rubanov

ในกรณีหนึ่งการใช้gpg(รุ่น 1.4.20) ภายใต้ Xubuntu จะทำให้เกิดความล้มเหลวเสมอ (การสร้างรหัสผ่านผ่านpass) การใช้gpg2(เวอร์ชัน 2.1.11) ทำให้ทุกอย่างทำงานได้ดี
Nikos Alexandris

'คีย์' เช่น 64290B2D เป็นสิ่งที่คุณใช้ในการระบุคีย์ในกรณีของฉันคือที่อยู่อีเมลเปิดเผยว่าเป็น uid ด้วยgpg -k
John Mee

5

ด้วยสิ่งบ่งชี้ที่เหมือนกันหากใครก็ตามพบปัญหานี้วิธีแก้ไขอาจแตกต่างกันเล็กน้อย คุณpassกำลังใช้งานgpg2แทนคุณgpgอาจเคยสร้าง / จัดการกุญแจของคุณ (หรือกลับกัน) ยืนยันด้วย:

bash -x $(which pass) insert foo

2
WTF !? ทำไม gpg และ gpg2 จึงถูกติดตั้งบนระบบใหม่ เหตุใดทั้ง manpage pass และเว็บไซต์ก็ไม่ต้องพูดถึงวิธีสร้าง! @ # &% คีย์ gpg ที่ถูกสาป ???
เบีย

2
ในกรณีที่มีการสร้างด้วย GPG 1 - คุณสามารถนำเข้า GPG 2 เช่นนี้:gpg2 --import ~/.gnupg/secring.gpg
maxschlepzig

2

ฉันได้รับข้อผิดพลาดเดียวกันในขณะที่การใช้ bash ในการดีบักกำลังช่วย (bash -x) จากนั้นฉันก็รู้ว่ารหัสผ่านนั้นมีรายการของ gpg-key ที่ไม่มีอยู่ใน. password-store / .gpg-id


1

ฉันได้รับข้อผิดพลาดเดียวกัน แต่การตรวจสอบด้วยgpg2 --list-keysทำให้ฉัน

pub   rsa4096/0x12345678 2016-11-22 [SC] [expired: 2018-11-26]

ดังนั้นทางออกของฉันคือ

gpg --edit-key 0x12345678
gpg> expire
...
gpg> save

ดูhttps://unix.stackexchange.com/a/177310/14315

หากคุณต้องต่ออายุคีย์ย่อยให้ใช้สิ่งนี้:

> e.g. if the subkey whose validity you want to extend is the first listed
> subkey, or if it is the only listed subkey, then the  command would be
> Command> key 1
> this will put a * after the word sub, indicating that this particular
> subkey has been selected. then
> Command> expire
> and follow the prompts.

แหล่งที่มาhttps://lists.gnupg.org/pipermail/gnupg-users/2005-June/026063.html

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.