ฉันสามารถป้อนรหัสผ่าน gpg เพียงครั้งเดียวและปลดล็อคคีย์ย่อยทั้งหมดของฉัน (การเซ็นการถอดรหัสการรับรองความถูกต้อง) ได้หรือไม่
ในตอนนี้ฉันต้องป้อนรหัสผ่าน gpg ของฉันสามครั้ง (สำหรับการเซ็นชื่อเพื่อถอดรหัสเพื่อการรับรองความถูกต้อง) สิ่งนี้ไม่สะดวก
ฉันพยายามหาเชลล์สคริปต์
#!/bin/bash
set -x
set -e
set +o history
signing_key=77BB3C48
encryption_key=CE998547
tempfile="$(mktemp)"
echo "test" > testfile
unset passphrase || exit 1
read -sp 'Enter password. ' passphrase ; echo
exec 3<<<"$passphrase"
gpg2 --no-tty --use-agent --batch --yes --passphrase-fd 3 --sign-with "$signing_key" --clearsign "$tempfile"
gpg2 --no-tty --use-agent --verify "$tempfile.asc"
gpg2 --no-tty --use-agent --yes --armor --recipient "$encryption_key" --encrypt "$tempfile"
exec 3<<<"$passphrase"
gpg2 --no-tty --use-agent --batch --decrypt --passphrase-fd 3 "$tempfile.asc"
แต่น่าเสียดายที่วิธีการใช้รหัสผ่าน gnupg-agent ไม่ได้เก็บรหัสผ่านไว้ สามารถแก้ไขได้หรือไม่
ข้อมูลระบบ:
- เมื่อไม่ได้ใช้เชลล์สคริปต์นั้นฉันไม่มีปัญหากับ gnupg-agent เมื่อฉันลงนาม / ถอดรหัสไฟล์ใน shell ด้วยตนเอง pinentry จะขอรหัสผ่านสองครั้งจากนั้นแคชจนกว่าจะรีบูต
- ใช้ Debian Wheezy
- รุ่น gpg:
dpkg -l | grep gnupg
ii gnupg 1.4.12-7+deb7u3 i386 GNU privacy guard - a free PGP replacement
ii gnupg-agent 2.0.22-3 i386 GNU privacy guard - password agent
ii gnupg-curl 1.4.12-7+deb7u3 i386 GNU privacy guard - a free PGP replacement (cURL)
ii gnupg2 2.0.22-3 i386 GNU privacy guard - a free PGP replacement (new v2.x)
ฉันได้ขอให้รายชื่อผู้รับจดหมาย gnupg ผู้ใช้อยู่พักหนึ่งแล้ว แต่ไม่มีการตอบกลับ
บางทีคำตอบนี้อาจใช้ได้ อาจgpg-connect-agent
จะต้อง?
exec 3<<<"$passphrase"
ยังใหม่สำหรับฉัน ... และฉันเพิ่งโยน 250 ตัวแทนเงินรางวัลที่คำตอบที่คุณอ้าง