에이전트 시작 매개변수

에이전트 시작 매개변수

쉘 스크립트에서 어떻게 gpg-agent --no-allow-external-cache --default-cache-ttl 10 --max-cache-ttl 20 설정하나요? 명령을 실행한 후에는 제공되지만 gpg-agent[4869]: gpg-agent running and available캐시 ttl 값은 변경되지 않습니다. --decrypt로 확인 gpgconf --list-options gpg-agent | grep cache하고 실제로 실행했는데 30초 후에도 키가 계속 캐시되었습니다.

나는 웹 리소스가 파일에서 이러한 구성을 변경하도록 제안한다는 것을 알고 있습니다 ~/.gnupg/gpg-agent.conf. 왜 파일이 ​​없는지 모르겠습니다. 루트인데도 vi /root/S.gpg-agent파일을 열 수 없습니다. 어쨌든 저는 구성 파일에서 이러한 설정을 변경하는 것을 좋아하지 않습니다. 나는 다른 --decrypt에 대해 다른 캐시 TTL을 설정하는 것을 선호합니다. 따라서 쉘 스크립트에서 실행되어야 합니다.

# ls -al /root/.gnupg/
total 36
drwx------  3 root root 4096 Jun  2 05:51 .
drwx------ 14 root root 4096 Jun  2 14:18 ..
-rw-r--r--  1 root root   24 Jun  2 03:28 .#lk0x00005558d8861f30.gentoo_bazic.26472
-rw-r--r--  1 root root   24 Jun  2 04:16 .#lk0x0000556c15e3ef30.gentoo_bazic.7432
-rw-r--r--  1 root root   24 Jun  1 20:45 .#lk0x00005576e9d54f30.gentoo_bazic.29752
drwx------  2 root root 4096 Jun  1 02:43 private-keys-v1.d
-rw-------  1 root root   32 Jun  1 02:43 pubring.kbx
-rw-------  1 root root  600 Jun  2 05:20 random_seed
srwx------  1 root root    0 Jun  2 05:51 S.gpg-agent
srwx------  1 root root    0 Jun  2 05:51 S.gpg-agent.browser
srwx------  1 root root    0 Jun  2 05:51 S.gpg-agent.extra
srwx------  1 root root    0 Jun  2 05:51 S.gpg-agent.ssh
-rw-------  1 root root 1200 Jun  2 03:19 trustdb.gpg

추신: 캐시를 삭제하면 가능하다는 것을 알고 있습니다 echo RELOADAGENT | gpg-connect-agent. 그러나 이는 이상적이지 않습니다.

인용하다

https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html

https://www.gnu.org/software/emacs/manual/html_node/pgg/Caching-passphrase.html

답변1

에이전트 시작 매개변수

gpg-agent[4869]: gpg-agent running and available

에이전트는 시작 후 즉시 종료되고 해당 프로세스 4869의 수명은 약 1초라고 가정합니다. 테스트가 gpgconf --list-options gpg-agent실제로 기본 구성에서 이미 실행 중인 프록시에 연결 중일 수 있습니다.

일반적으로 gpg-agent는 적어도 캐시를 지우지 않고(옵션이 아님) 런타임에 구성을 변경하도록 설계되지 않은 것 같습니다.

구성 파일

~/.gnupg/gpg-agent.conf해당 파일 은 기본적으로 생성되지 않기 때문에 해당 파일이 없습니다 .

오타 vi /root/S.gpg-agent일 수도 있습니다 vi /root/.gnupg/S.gpg-agent. S.gpg-agent일반 파일이 아닌 소켓이기 때문에 편집할 수 없습니다 .

여러 프로필 관리

--decrypt키 수나 사용 사례의 복잡성에 따라 다른 GPG 홈 디렉터리를 사용하도록 선택할 수 있습니다 .

/root/gnupg-home-1/및 을 관리하는 경우 각 디렉터리는 서로 다른 캐시 TTL 값을 갖는 /root/gnupg-home-2/자체 디렉터리를 가질 수 있습니다 . gpg-agent.conf주문하다

  • gpg --homedir /root/gnupg-home-1/ --decrypt ...
  • gpg --homedir /root/gnupg-home-2/ --decrypt ...

각각 고유한 구성을 가진 다양한 에이전트 인스턴스의 시작을 트리거합니다.

테스트/검증

(이전과 마찬가지로) 검증 결과를 사용할 수 있으며 매개변수 gpgconf만 추가하면 됩니다 .--homedir

  • gpgconf --homedir /root/gnupg-home-1/ --list-options gpg-agent |grep cache
  • gpgconf --homedir /root/gnupg-home-2/ --list-options gpg-agent |grep cache

방문 제한

루트의 umask가 이미 그룹 및 기타 디렉토리에 대한 액세스를 차단하지 않은 경우 사용해야 합니다 mkdir --mode=700 <directoryname>.

청소하다

사용 후 살해 물질이 필요합니까?

보안 관점에서 볼 때 캐시가 올바르게 구현되고 구성된 TTL이 상당히 짧은 경우 이는 필요하지 않습니다.

시스템 유지 관리 관점에서 가동 시간이 높을 가능성이 있는 서버에서는 더 이상 필요하지 않을 때 에이전트 프로세스를 종료하는 것이 가장 좋습니다. 그렇지 않으면 사용하지 않는 에이전트 프로세스 수가 너무 많이 늘어날 수 있습니다.

소프트웨어 상태 관점에서 디렉터리를 삭제하고 에이전트 프로세스를 유지하는 것은 일관성이 없습니다. 내 테스트(gpg-agent 버전 2.2.35)에서는 디렉터리를 삭제한 후 에이전트 프로세스가 자동으로 사라졌습니다. 그러나 매뉴얼 페이지에서 이에 대한 정보를 찾을 수 없으므로 왜 이런 일이 발생하는지, 이것이 얼마나 신뢰할 수 있는지 모르겠습니다.

사용 사례 및 스크립트 구현 방법에 따라 디렉터리가 삭제된 후에도 에이전트 프로세스가 지속되면 실수로 이전 구성을 재사용할 위험이 있을 수 있습니다. uuidgen이러한 유형의 오류는 .

관련 정보