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
원하는 값으로 파일을 넣으십시오 .
다음을 실행하여 수행 한 것을 확인할 수 있습니다.
gpgconf.exe --reload gpg-agent
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 에이전트를 다시로드하십시오 .