전체 사용자 세션에 대해 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.

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변경되었습니다.


이것은 "당신이 원하는 것을 할 수 없습니다"응답입니까? 세션 길이 제한이나 캐싱 시간 제한에 대해 이야기하고 있기 때문에 명확하지 않습니다. 캐시 시간이나 세션 길이에 대한 임의의 제한은 없습니다.
bignose

그것의 종류, 당신은 다소 큰 ttl을 설정해야만 해결할 수 있습니다. 1 년 정도 설정하면 괜찮을 것이지만 다시 시작하여 세션을 종료해야합니다 gpg-agent.
Jens Erat

최신 버전 (최소한 gnupg 2.1)에는이 maximum-cache-ttl옵션이 존재하지 않습니다. 올바른 옵션을 보려면 공식 문서를 참조하십시오 : gnupg.org/documentation/manuals/gnupg/…
Pablo Olmos de Aguilera C.

3
최소한 GnuPG 2.1에서 기본값 default-cache-ttl은 2 시간이 아니라 600 초 (10 분)입니다.
jlh

@jlh의 여러 버전에 대한 매뉴얼 페이지를 보면 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-connect-agent reloadagent /bye구성을 변경 한 후 gpg 에이전트를 다시로드하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.