전체 사용자 세션에 대해 GnuPG 자격 증명을 캐시 된 상태로 유지 해제하면 gpg-agent제한된 시간 동안 만 캐시

GnuPG는 gpg-agent을 사용하여 개인 키에 대한 액세스를 캐시 할 수 있습니다 . 전체 사용자 세션에 대해 캐시를 활성 상태로 유지하려면 어떻게 해야 합니까?

에 대한 키를 잠금 해제하면 gpg-agent제한된 시간 동안 만 캐시 된 상태로 유지됩니다. SSH의 에이전트를 사용하여 비밀번호 문구를 한 번 입력하면 전체 세션에 대해 캐시 된 상태로 유지됩니다. 에서와 동일한 동작을 원합니다 gpg-agent.

따라서 ssh-agent제한된 캐시 수명으로 고통받지 않습니다. 그러나 gpg-agent최소한 기본적으로 캐시 수명을 제한합니다. 어떻게 할 수 캐시 시간에 대한 제한 제거 에서를 gpg-agent?



답변

최대 GnuPG 2

사용자 구성 (에서 ~/.gnupg/gpg-agent.conf)은 기본 및 최대 캐싱 기간 만 정의 할 수 있습니다. 비활성화 할 수 없습니다.

default-cache-ttl옵션은 마지막 GnuPG 작업 후 시간 초과 (초)를 설정하므로 (사용하는 경우 재설정 maximum-cache-ttl) 비밀번호를 입력 한 후 캐시하는 시간 범위 (초)를 설정합니다. 기본값은 600 초 (10 분) default-cache-ttl이고 7200 초 (2 시간)입니다 maximum-cache-ttl.

1 년 정도 (예 : 34560000 초 (400 일))로 설정하면 괜찮을 것입니다.

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

그러나이 변경 사항을 적용하려면 gpg-agent를 다시 시작하여 세션을 종료해야합니다.

세션 길이를 제한하려면 로그 아웃시 데몬을 종료해야합니다. 이것은 운영 체제마다 매우 다르므로 다른 시스템에 대한 힌트가 포함 된 다른 질문 / 답변을 참조하고 있습니다 .

gpg-agent로그인 중에를 다시 시작할 수도 있지만 이는 캐싱 시간을 세션 길이로 제한하지 않고 사용자의 로그인으로 제한합니다. 이것이 귀하의 경우에 문제인지 판단하십시오.

GnuPG 2.1 이상

GnuPG 2.1 이상에서는 추가 변경없이 maximum-cache-ttl옵션 이름이 max-cache-ttl변경되었습니다.


답변

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"


답변

gpg-connect-agent reloadagent /bye구성을 변경 한 후 gpg 에이전트를 다시로드하십시오 .


답변