ใช้ GnuPG และ daemon gpg-agent


9

ฉันใช้gpg-agentเพื่อจดจำและระบุGnuPGรหัสผ่านเมื่อสร้างDebian/Ubuntuแพ็คเกจ แต่ฉันก็ยังงงว่ามันgpg-agentทำงานยังไง ฉันขอร้องgpg-agentเป็น:

eval $(gpg-agent --daemon)

มันใช้งานได้บางครั้ง แต่สิ่งที่รบกวนจิตใจฉันคือบางครั้งมันก็ไม่ทำงาน เช่นบางครั้งกระบวนการสร้างขอGnuPGรหัสผ่านของฉันหนึ่งครั้งบางครั้งไม่มีและบางครั้งหลายครั้ง ทั้งหมดนี้เกิดขึ้นในช่วงเซสชั่นทุบตีเดียวหลังจากที่ฉันได้เรียกgpg-agentเมื่อก่อน การไม่ขอรหัสผ่านในครั้งนี้ไม่รับประกันว่าฉันจะไม่ได้รับรหัสผ่านในครั้งต่อไป ฉันยังไม่เข้าใจสาเหตุที่gpgตัดสินใจแจ้งรหัสผ่านให้ฉันและทำไมจึงไม่เป็นเช่นนั้น

มันเกิดขึ้นกับคุณเช่นกันหรือไม่?

ขอบคุณ


1
คุณจะต้องใช้เวลาสักครู่เพื่อลองปักหมุดภายใต้สถานการณ์ที่มันล้มเหลวและสถานการณ์ที่สำเร็จ หากคุณสามารถอธิบายสิ่งที่สัมพันธ์อย่างน่าเชื่อถือกับความล้มเหลวจากนั้นคนอื่นมีแนวโน้มที่จะคิดวิธีการแก้ปัญหา
bignose

ใน Emacs สำหรับ GNUS และ.authinfo.gpgฉันมีคำแนะนำให้ใช้gpg2ซึ่งgpg-agentเกี่ยวข้องกับ ดังนั้น(setq epg-gpg-program "/usr/bin/gpg2")ทำงานให้ฉัน บางทีคุณอาจต้องค้นพบว่าแอปพลิเคชันของคุณมีปัญหาใดพวกเขาอาจเลือกใช้gpg(1)
Brady Trainor

คำตอบ:


7

พบวิธีการใช้งานอย่างถูกต้องgpg-agentจาก http://tr.opensuse.org/SDB:Using_gpg-agent

หลังจากนั้นgpg-agentภูตของฉันกำลังแคชGnuPGรหัสผ่านของฉันอย่างถูกต้องในตอนนี้ ไม่มีอะไรผิดปกติกับการตั้งค่าของฉันเพียงแค่ฉันไม่รู้วิธีทดสอบว่าGnuPGรหัสผ่านของฉันแคชอย่างถูกต้องหรือไม่

ตอนนี้ฉันทำ:

echo "test" | gpg -ase -r 0xMYKEYID | gpg

จากไซต์: "แทนที่ 0xMYKEYID ด้วยรหัสคีย์ GnuPG ของคุณขณะเรียกใช้คำสั่งนี้เอเจนต์ควรเปิดกล่องโต้ตอบรหัสผ่านแบบกราฟิกสองครั้ง: ก่อนอื่นสำหรับการลงชื่อหรือเข้ารหัส (gpg -ase) (gpg -ase) จากนั้นสำหรับการถอดรหัสหรือตรวจสอบลายเซ็น | gpg) จากนี้ไปทุกครั้งที่ใช้ GnuPG (จากบรรทัดคำสั่งหรือฝังในโปรแกรมกราฟิกเช่น KMail) รหัสผ่านของ gpg-agent จะถูกส่งโดยอัตโนมัติ (จนกว่าจะหมดเวลาหรืออินเทอร์เฟซแบบกราฟิกเป็น ปิด)."

และเพื่อหลีกเลี่ยงการหมดอายุของแคชตอนนี้ฉันได้ตั้งระยะเวลาการหมดเวลานานมาก:

$ cat ~/.gnupg/gpg-agent.conf
max-cache-ttl 60480000
default-cache-ttl 60480000

ตามlinux.die.net/man/1/gpg-agentคุณสามารถเพิ่ม--write-env-file "${HOME}/.gpg-agent-info"เมื่อเริ่มต้น gpg-agent แล้วเพิ่ม if [ -f "${HOME}/.gpg-agent-info" ]; then . "${HOME}/.gpg-agent-info"; export GPG_AGENT_INFO fi ใน. bashrc ของคุณเพื่อตรวจสอบว่าตัวแทนทำงานอยู่หรือไม่ ดูเหมือนว่าโซลูชันที่สะอาดกว่าเล็กน้อย
Sean the Bean

@ SeantheBean ยอดเยี่ยม ฉันจะทดสอบมันและกลับไปหาคุณ ...
xpt

WARNING: "--write-env-file" is an obsolete option - it has no effectApr 4 '16เพราะอย่างน้อย Ref: serverfault.com/a/481174
xpt
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.