เก็บแคชข้อมูลรับรอง GnuPG ไว้ตลอดเซสชันของผู้ใช้


53

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

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

ดังนั้นssh-agentอย่าใช้แคชที่ จำกัด ตลอดชีวิต แต่gpg-agentจำกัด อายุการใช้งานแคชอย่างน้อยโดยค่าเริ่มต้น ฉันจะสามารถขจัดข้อ จำกัด ในเวลาแคชจากgpg-agent?

คำตอบ:


69

สูงถึง GnuPG 2

การกำหนดค่าผู้ใช้ (ใน~/.gnupg/gpg-agent.conf) สามารถกำหนดค่าเริ่มต้นและระยะเวลาแคชสูงสุดเท่านั้น มันไม่สามารถปิดการใช้งาน

default-cache-ttlตัวเลือกที่กำหนดหมดเวลา (วินาที) หลังจากกิจกรรม GnuPG สุดท้าย (ดังนั้นจึงรีเซ็ตถ้าคุณใช้มัน) ที่maximum-cache-ttlตั้งค่าตัวเลือกช่วงเวลา (วินาที) แคชมันหลังจากที่ป้อนรหัสผ่านของคุณ ค่าเริ่มต้นคือ 600 วินาที (10 นาที) สำหรับdefault-cache-ttlและ 7200 วินาที (2 ชั่วโมง) maximum-cache-ttlสำหรับ

ตั้งค่าเป็นปีหรือประมาณว่าพูด 34560000 วินาที (400 วัน) - และคุณควรจะ:

default-cache-ttl 34560000
maximum-cache-ttl 34560000

แต่เพื่อให้การเปลี่ยนแปลงมีผลคุณจะต้องสิ้นสุดเซสชันโดยการรีสตาร์ท gpg-agent

หากคุณต้องการ จำกัด ความยาวเซสชั่นของคุณคุณจะต้องฆ่า daemon เมื่อออกจากระบบ นี่คือความแตกต่างระหว่างระบบปฏิบัติการดังนั้นฉันหมายถึงอีกคำถาม / คำตอบที่มีคำแนะนำสำหรับระบบที่แตกต่างกัน

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

GnuPG 2.1 ขึ้นไป

ใน GnuPG 2.1 ขึ้นไปmaximum-cache-ttlตัวเลือกถูกเปลี่ยนชื่อเป็นmax-cache-ttlไม่มีการเปลี่ยนแปลงเพิ่มเติม


นี่เป็นคำตอบ“ คุณไม่สามารถทำสิ่งที่คุณขอ” ได้หรือไม่? ยังไม่ชัดเจนเนื่องจากคุณกำลังพูดถึงการ จำกัด ระยะเวลาเซสชันหรือ จำกัด เวลาแคช ฉันต้องการสิ่งที่ตรงกันข้าม: ไม่มีข้อ จำกัด เกี่ยวกับเวลาแคชหรือความยาวเซสชัน
bignose

คุณสามารถแก้ไขได้ด้วยการตั้งค่า ttl ที่ค่อนข้างใหญ่ กำหนดให้ปีหรือดังนั้นและคุณควรจะปรับ - gpg-agentแต่จำเป็นที่จะต้องจบเซสชั่นโดยการรีสตาร์ท
Jens Erat

โปรดทราบว่าในเวอร์ชั่น latests (อย่างน้อย gnupg 2.1) maximum-cache-ttlไม่มีตัวเลือก หากต้องการดูตัวเลือกที่ถูกต้องโปรดดูเอกสารอย่างเป็นทางการ: gnupg.org/documentation/manuals/gnupg/ ......
Pablo Olmos de Aguilera C.

3
อย่างน้อยใน GnuPG 2.1 ค่าเริ่มต้นdefault-cache-ttlคือ 600 วินาที (10 นาที) ไม่ใช่สองชั่วโมง
jlh

@jlh ดูที่หน้า man สำหรับเวอร์ชันที่แตกต่างกันgpg-agentค่าที่ถูกต้องน่าจะเป็น 10 นาทีสำหรับทุกรุ่น ฉันแก้ไขคำตอบแล้วขอบคุณที่ชี้ให้เห็น
Jens Erat

7

สำหรับ Windows

ไฟล์ที่คุณต้องการแก้ไขควรอยู่ที่: $env:AppData\gnupg

หากคุณเรียกใช้สิ่งนั้นในหน้าต่าง PowerShell จะเปิดขึ้น: C:\Users\<UserName>\AppData\Roaming\gnupg

เพียงแค่วางgpg-agent.confไฟล์ไว้ที่นั่นด้วยค่าที่คุณต้องการ

คุณสามารถตรวจสอบได้โดยใช้:

  1. gpgconf.exe --reload gpg-agent
  2. gpgconf.exe --list-options gpg-agent

คุณสามารถใช้สายการบินเดียวนี้ได้: Set-Content -Path $env:AppData\gnupg\gpg-agent.conf -Value "default-cache-ttl 86400$([System.Environment]::NewLine)max-cache-ttl 86400"


หากคำตอบที่สองที่นี่ไม่เหมาะสมเราสามารถย้ายคำถามนี้ไปยังคำถามของตัวเองติดแท็กด้วย Windows ไม่แน่ใจว่าสิ่งที่ :) ขวา
CubanX

ขอบคุณและเก็บไว้ที่นี่ - ดีที่มีข้อมูลทั้งหมดในที่เดียว 👍
barfuin

5

ตรวจสอบให้แน่ใจว่าได้โหลดตัวแทน gpg ของคุณอีกครั้งgpg-connect-agent reloadagent /byeหลังจากเปลี่ยนการกำหนดค่า

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