เป็นไปได้หรือไม่ที่จะกำหนดค่าgpg
ในวิธีที่ฉันป้อนข้อความรหัสผ่านเพียงครั้งเดียวและจะใช้ได้ทั้งเซสชัน (ฉันกำลังใช้Ubuntu/XFce
)
ฉันไม่แน่ใจว่าวิธีการgpg
ทำงานดูเหมือนว่าฟังก์ชั่นเริ่มต้นคือการgpg
ถามgpg-agent
วลีรหัสผ่านและตัวแทนเรียกใช้ขาเข้าเพื่อขอข้อความรหัสผ่าน
ฉันต้องการใช้ pinentry-curses เพียงครั้งเดียวต่อเซสชันดังนั้นฉันจึงสามารถวางข้อความรหัสผ่านของฉัน (ฉันมีhex
สตริงจากประโยค - ฉันใช้echo -n <SENTENCE> | str-hex
) และลงชื่ออีเมลจาก Claws Mail โดยไม่ใส่ข้อความรหัสผ่าน (คุณไม่สามารถใช้ pinentry-curses กับ Claws ได้ Mail)
GPG_PROCESS=`cut -d: -f 2 $HOME/.gpg-agent-info` if test -f $HOME/.gpg-agent-info && \ kill -0 ${GPG_PROCESS} 2>/dev/null && \ [[ ${GPG_PROCESS} == `pgrep -x -u "${USER}" gpg-agent` ]] ; then
และทำงานได้ดี ปัญหาคือสคริปต์ข้างต้นตรวจสอบว่ากระบวนการใน.gpg-agent-info
ยังมีชีวิตอยู่และรับสัญญาณด้วยkill -0
หรือไม่ หากกระบวนการอยู่ที่นั่น แต่ไม่ใช่gpg-agent
เราจะได้รับพฤติกรรมที่ไม่ถูกต้อง รหัสที่แนบมาตรวจสอบว่าเรามีกระบวนการที่ถูกต้อง