GPG ค้างเมื่อเข้าถึงกุญแจส่วนตัว


16

ฉันชอบที่จะเซ็นสัญญาคอมไพล์ด้วยคีย์ PGP ของฉันดังนั้นฉันค่อนข้างตกใจเมื่อฉันไปที่git commit -Sแต่แทนที่จะแจ้งให้ใช้ข้อความรหัสผ่านคีย์ PGP ของฉัน git เพิ่งเริ่มแขวน ฉันไม่ได้ทำการเปลี่ยนแปลงการตั้งค่า GPG ของฉันในเวลาหลายเดือนและได้ทำข้อตกลงไว้มากมายตั้งแต่นั้นมาโดยไม่มีปัญหา นอกจากนี้เมื่อฉันพยายามดูกุญแจส่วนตัวด้วยgpg -Kgpg จะหยุดทำงาน อย่างไรก็ตามเมื่อฉันเรียกใช้gpg -kเพื่อดูกุญแจสาธารณะของฉันมันจะส่งคืนรายการเหมือนปกติ หวังว่าใครบางคนจะมีความคิดในสิ่งที่ทำให้เกิดปัญหานี้และวิธีการแก้ไข


คุณทำสิ่งนี้ผ่าน ssh หรือไม่ ถ้าเป็นเช่นนั้นคุณมีgpg-agentหรือตั้งค่าที่คล้ายกันใน. bashrc (ฯลฯ ) ของระบบรีโมตและกำหนดค่าให้แสดงบน X display ของรีโมตหรือคล้ายกันหรือไม่? ผมเคยมีปัญหาที่คล้ายกันในอดีตที่ผ่านมา (เช่น SSH-ing จากขั้วในกล่องของฉัน MythTV กับเครื่องเดสก์ทอปของฉันการทำงานบางอย่างที่ต้องใช้จีพีจี. นอกจากนี้ยังมีปัญหาที่คล้ายกันด้วยssh-agent) และฉันแรงเดรัจฉาน "คงที่" ด้วยexport GPG_TTY=$(tty)ใน .bashrc เพื่อให้แน่ใจว่าพรอมต์อยู่บน tty ปัจจุบันเสมอ ฉันไม่สามารถแสดงพรอมต์ GUI passwd ได้
cas

1
ไม่ฉันไม่ได้ทำเรื่อง SSH สิ่งที่แปลกคือฉันพบว่าถ้าฉันฆ่า gpg-agent gpg จะทำงานได้อีกครั้ง ฉันกำลังพยายามหาสาเหตุและแก้ไขปัญหาระยะยาว
John Leuenhagen

ฉันเพิ่งสังเกตเห็นในgpg-agentman page ที่ตั้งค่า GPG_TTY ไว้ด้านบนไม่ใช่สิ่งที่ฉันแฮ็คเพื่อทำงานมันเป็นสิ่งจำเป็น หน้าคนบอกว่าคุณควรตั้งไว้ใน. bashrc ของคุณเหมือนที่ฉันทำและพูดว่าIt is important that this environment variable always reflects the output of the tty command.- นั่นต้องเป็นที่ที่ฉันได้รับมา อีกสิ่งหนึ่งที่คุณต้องระวังคือโปรแกรม pinentry ที่ใช้โดย gpg-agent ฉันมีชุดการเหมืองแร่ (ใน~/.gnupg/gpg-agent.conf) ไป/usr/bin/pinentry-curses
CAS

คำตอบ:


21

ฉันเจอปัญหานี้แล้ว (OSX Sierra 10.12.6, gpg / GnuPG 2.2.5)

คำสั่งที่จะแขวน:

gpg -K # --list-secret-keys
gpg -d # --decrypt
gpg --edit-key
gpgconf --kill gpg-agent

วิธีการแก้ปัญหาของฉันเหมือนกับจอห์นที่กล่าวถึงข้างต้น (เช่น kill gpg-agent) เช่นเดียวกับวิธีการอื่น ๆ ส่วนใหญ่เกี่ยวกับวิธี -can-i-restart-gpg-agentก็จะหยุดทำงาน

# Solution    
pkill -9 gpg-agent

แล้วสำหรับการลงกระทำคอมไพล์ผมตั้ง env TTY ดังกล่าวโดยCASข้างต้นและยังgpg ล้มเหลวต่อการลงชื่อเข้าใช้กระทำวัตถุ

export GPG_TTY=$(tty)

ดังนั้นคุณต้องฆ่า gpg ใหม่ทุกครั้งที่คุณรีบู๊ต? นั่นคือสิ่งที่ฉันต้องทำมานานแล้ว ฉันหวังว่าเราจะหาวิธีแก้ไขให้ดี
John Leuenhagen

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