รหัสผ่านและ gpg: ไม่มีรหัสสาธารณะ


13

ฉันใช้บัตรผ่านเป็นเวลานาน แต่หลังจากส่งออกที่เก็บข้อมูลกุญแจและปุ่ม gpg ไปยังเครื่องอื่นฉันเห็นผลลัพธ์ต่อไปนี้:

$ gpg --list-key
/home/shved/.gnupg/pubring.gpg
------------------------------
pub   2048R/FA829B53 2015-04-28
uid       [ultimate] Yury Shvedov (shved) <shved@lvk.cs.msu.su>
sub   2048R/74270D4A 2015-04-28

กุญแจของฉันนำเข้าและเชื่อถือได้ แต่ไม่สามารถใช้งานได้:

pass insert test
Enter password for test: 
Retype password for test: 
gpg: 2048R/FA829B53: skipped: No public key
gpg: [stdin]: encryption failed: No public key
fatal: pathspec '/home/shved/.password-store/test.gpg' did not match any files

ฉันจะทำอย่างไรเพื่อใช้รหัสของฉันอีกครั้ง

คำตอบ:


12

รหัสผ่านใช้ gnupg2 ซึ่งไม่แชร์เป็นพวงกุญแจกับ gnupg 1.x

นำเข้ากุญแจของคุณอีกครั้งโดยใช้ gnupg2 แทน gnupg หากคุณมีคีย์ของคุณเป็น gnupg ในเครื่องเป้าหมายที่รันอยู่:

$ gpg --export-secret-keys > keyfile
$ gpg2 --import keyfile

หลังจากนำเข้าคุณอาจต้องอัปเดตความน่าเชื่อถือในคีย์ของคุณ คุณควรเห็นSecret key is available.ข้อความว่าการนำเข้าสำเร็จหรือไม่:

$ gpg2 --edit-key FA829B53
[...]
Secret key is available.

sec  rsa4096/FA829B53
     created: 2015-03-14  expires: 2017-03-13  usage: SC  
     trust: unknown      validity: ultimate
ssb  rsa4096/74270D4A
     created: 2015-03-14  expires: 2017-03-13  usage: E   
[ultimate] (1). Yury Shvedov (shved) <shved@lvk.cs.msu.su>

ตอนนี้ปรับปรุงความน่าเชื่อถือในคีย์ของคุณ:

gpg> trust
[...]
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
[...]
gpg> save

ผ่าน (อย่างน้อยรุ่น 1.6.3) ใช้ไม่ได้gpg gpg2และ gpg2 เป็นเพียงการออกแบบใหม่ มีเพียงการเปลี่ยนแปลงบางอย่างในรุ่น 2.1 เท่านั้น (การรวมคีย์สาธารณะและกุญแจส่วนตัวในกุญแจสาธารณะ
Anthon

ไม่เป็นความจริงสำหรับเวอร์ชันของฉัน (1.6.5) จากซอร์สโค้ด: 10 GPG = "gpg" 11 ส่งออก GPG_TTY = "$ {GPG_TTY: - $ (tty 2> / dev / null)}" 12 ซึ่ง gpg2 &> / dev / null && GPG = "gpg2" 13 [ [-n $ GPG_AGENT_INFO || $ GPG == "gpg2"]] && GPG_OPTS + = ("--batch" "--use-agent") นี่ก็หมายความว่า 'ผ่าน' ใช้ gpg เว้นแต่ gpg2 อยู่ในระบบเดียวกัน
Łukasz Lis

1
ดังนั้นจึงใช้ gpg เว้นแต่ว่าจะมีการติดตั้ง gpg2 และเพื่อวัตถุประสงค์ในการส่งผ่านสิ่งเหล่านี้สามารถใช้งานร่วมกันได้มิฉะนั้นคุณจะได้รับปัญหาที่น่ากลัวหากคุณติดตั้ง gpg2 ในบางครั้งหลังจากที่คุณเริ่มใช้ Pass (ซึ่งคุณไม่ควรใช้ บางครั้งอาจปล่อยข้อมูลที่ไม่ได้เข้ารหัสไว้ในไดเรกทอรี "พื้นที่เก็บข้อมูล" ของคุณ)
Anthon

อย่างแรกนี่ไม่ใช่สิ่งที่คุณโต้เถียงในการตอบครั้งแรก ประการที่สองคุณไม่ได้ตอบจุดของฉันเกี่ยวกับพวกเขาที่ไม่แชร์พวงกุญแจ ประการที่สามพวกเขาเข้ากันได้เฉพาะในที่ทั้งสองสามารถถอดรหัสข้อความหากได้รับรหัสลับที่เหมาะสม
Łukasz Lis

7

สายออก

gpg: 2048R/FA829B53: skipped: No public key

แสดงการpassเริ่มต้นที่ไม่ถูกต้อง คุณเริ่มต้นได้passมีคำสั่งในขณะที่คุณควรจะทำมันได้ด้วยคำสั่งpass init 2048R/FA829B53 pass init FA829B53เพื่อแก้ปัญหาคุณควรเปลี่ยนเนื้อหาของไฟล์~/.password-store/.gpg-idจาก2048R/FA829B53เป็นFA829B53และยอมรับการเปลี่ยนแปลง

PS

คำแนะนำทั้งหมดของ @ Łukasz Lis นั้นถูกต้องและคุณควรทำตามให้ครบถ้วน ในกรณีอื่นคุณจะไม่สามารถถอดรหัสรหัสผ่าน:

$ pass -c test

จะทำให้คุณมีข้อผิดพลาด: gpg: decryption failed: No secret key


มีประโยชน์ มันสามารถเกิดขึ้น pass init SomethigElseThanFirstStore(ที่ผิด)
Nikos Alexandris

0

ฉันสังเกตเห็นสิ่งนี้เมื่อสร้างร้านใหม่และเริ่มต้นด้วยรหัสคีย์เช่น "2048R / FA829B53" ซึ่งฉันคิดว่าเป็นวิธีการทำในอดีตที่ผ่านมาและดูการสำรองข้อมูลเก่าที่. gpg_id แตกต่างกัน

อย่างไรก็ตามตอนนี้ดูเหมือนว่าจะมีการใช้ FA829B53 และในหน้าปัจจุบันผู้เขียนใช้ที่อยู่อีเมลของเขา

ฉันจะตรวจสอบไฟล์ gpg_id สำหรับฉันในร้านค้าใหม่เป็นเพียง FA829B53 และไม่มีบรรทัดอื่น


0

ตรวจสอบว่ารหัสที่เชื่อถือได้ของคุณเหมือนกันในไฟล์ ~/.password-store/.gpg-id


สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม หากต้องการวิจารณ์หรือขอคำชี้แจงจากผู้แต่งโปรดแสดงความคิดเห็นใต้โพสต์ของพวกเขา - จากรีวิว
Kevdog777

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