암호 수집 중에 gpg-agent가 시간 초과되는 것을 방지하는 방법은 무엇입니까?

암호 수집 중에 gpg-agent가 시간 초과되는 것을 방지하는 방법은 무엇입니까?

gpg2로컬 파일의 대칭 암호화를 위해 CLI 스크립트를 호출하고 있습니다 . gpg-agent일부 CLI, 텍스트 기반 UI를 통해 암호 문구를 묻는 메시지가 있는 것으로 보입니다 . 암호를 입력하기만 하면 모든 것이 잘 작동합니다. 그러나 그렇지 않은 경우에는 결국 다음 메시지와 함께 실패하게 됩니다.

gpg-agent[15338]: command get_passphrase failed: Operation cancelled
gpg: cancelled by user
gpg: error creating passphrase: Operation cancelled
gpg: symmetric encryption of `XXXX.tar' failed: Operation cancelled

이 시간 초과를 완전히 해제할 수 있는 방법이 있습니까?

나는 무언가를 입력할 때까지 암호 문구 프롬프트가 화면에 무기한 남아 있기를 원합니다.

답변1

해결책은 여기에서 찾았습니다.https://dev.gnupg.org/T3240

지연은 GNOME 키링을 쿼리하는 pinentry로 인해 발생합니다. no-allow-external-cache당신 의gpg-agent.conf, 또는 제거 gnome-keyring하고 현재 실행 중인 gpg-agent를 종료합니다.gpgconf --kill gpg-agent

답변2

gpg-agent.conf에서(참조GPG-에이전트(1)), 다음 옵션을 시도해 보세요.

pinentry-timeout 0
pinentry-program /usr/bin/pinentry-curses --timeout 0

(그래도 사용하는 것이 다소 더 좋을 수도 있습니다 pinentry-tty.)

답변3

질문: "암호 수집 중에 gpg-agent가 시간 초과되는 것을 방지하는 방법은 무엇입니까?"

gpgA: 특정 사례는 세션 에서 의 사용입니다 ssh. 아래 구성을 사용하면gpg-에이전트세션 내에서도 마찬가지입니다 ssh. 특히

  • 잡을 수 없는잘라내어 붙여넣기 허용
  • 외부 캐시 허용 안함모든 키링을 비활성화합니다
  • 핀트리 저주기본값 대신 터미널에서 비밀번호를 묻습니다.소나무원격(ssh의 경우) 데스크톱 창에서 요청합니다.
  • 살아갈 시간ttl(5,6)은 24시간으로 설정됩니다. 이렇게 하면 예를 들어 gpg-agent로 스크립트를 호출하는 cron이 매일 실행될 때 비밀번호를 다시 입력할 필요가 없습니다.
shell> cat ~/.gnupg/gpg-agent.conf
no-grab 
no-allow-external-cache 
pinentry-program /usr/bin/pinentry-curses
default-cache-ttl 86400
max-cache-ttl 86400

답변4

pinentry-timeout나에게 효과가 있었던 방법(gpg 2.1.11) 은 내 파일에 다음을 추가하여 옵션을 큰 값(예: 24시간)으로 설정하는 것이었습니다 ~/.gnupg/gpg-agent.conf.

# time until pinentry closes in seconds
pinentry-timeout 86400

관련 정보