GPG 에이전트가 비밀번호를 캐시하도록하려면 어떻게해야합니까? 비밀번호를 요구하지만 Ubuntu 16.04에서 동일한 작업을 수행하는

저는 개발자이며 일반적으로 GPG 커밋으로 Git 커밋에 서명합니다. OSX에서 GPG 에이전트가 제대로 작동하여 하루에 한 번만 비밀번호를 요구하지만 Ubuntu 16.04에서 동일한 작업을 수행하는 데 문제가 있습니다.

내가하고있는 일은 다음과 같습니다.

  • GPG 키 설정 등이 있습니다.
  • 나는 Git 디렉토리에있다.
  • Git에 파일을 추가합니다.
  • 그런 다음 커밋 ( git commit)하고 다음과 같은 GPG 비밀번호 요청을 얻습니다.

    $ git ci
    
    You need a passphrase to unlock the secret key for
    user: "Randall Degges <r@rdegges.com>"
    4096-bit RSA key, ID 8F700DA2, created 2016-04-05
    
    [master 1740961] blah
     1 file changed, 1 insertion(+)
    

문제는 커밋을 할 때마다 GPG 비밀번호를 다시 묻습니다.

내가하고 싶은 일은 하루 종일 내 비밀번호를 캐시하도록 GPG 에이전트를 구성하므로 한 번만 입력하면됩니다.

수많은 문서와 블로그 게시물을 읽었으며 지금까지 시도한 내용은 다음과 같습니다.

먼저 ~/.zshrc파일을 수정 하여 (zsh 사용) 다음을 설정했습니다.

# GPG Agent
export GPG_TTY=$(tty)
export GPGKEY=8F700DA2

이제 내가 읽은 것에서 gpg-agent를 다시 시작한 후 이것만으로도 트릭을 수행해야하지만 그렇지 않습니다.

그래서 다음으로 페이지 ~/.gnupg/gpg-agent.conf에서 설명한대로 파일을 정의했습니다 man gpg-agent.

# Set the default cache time to 1 day.
default-cache-ttl       86400
default-cache-ttl-ssh   86400

# Set the max cache time to 30 days.
max-cache-ttl           2592000
max-cache-ttl-ssh       2592000

이것은 또한 효과가 없습니다.

나는 다양한 블로그 방법 등을 시도했지만 아무것도 작동하지 않는 것 같습니다. 누군가 내가 놓칠 수있는 것들에 대한 조언을 줄 수 있습니까?



답변

에서 캐시 시간을 설정하는 것 외에도 gpg-agent.confGnuPG가 실제로 인터페이스와 인터페이스하고 있는지 확인해야합니다 gpg-agent. GnuPG 2 이상은 일반적으로 사용하지만 GnuPG 1 분기는 그렇지 않습니다. 기본적으로 git은 gpg바이너리를 사용하고 있는데 (이 답변을 작성할 당시) 여전히 GnuPG 1이며 GnuPG 2는 gpg2대부분의 시스템에서 설치됩니다 .

결국 두 가지 가능성이 있습니다.

  • gpg2git 구성을 변경하여 사용할 git을 설정하십시오.

    git config --global gpg.program gpg2
    
  • 에 추가 하여 gpg사용할 설정 (GnuPG 1)gpg-agentuse-agentgpg.conf

답변

위의 답변 외에도 gpg시스템 의 기본값 을 gpg2대신로 변경할 수 있습니다 gpg1.

경우에 git config --global gpg.program gpg2당신을위한 작품,하지만 당신은 (내가 맥 OS에서 동일한 설정을 사용하기 때문에 내 경우) 당신의 자식 설정에서 떠날 싶지 않아 당신은 기본을 교환 단지 수 gpg밖에.

나는 여기 에있는 가이드를 따랐다 .

$ sudo mv /usr/bin/gpg /usr/bin/gpg1
$ sudo update-alternatives --verbose --install /usr/bin/gpg gnupg /usr/bin/gpg2 50

이 만드는 gpg1기존의 gpg바이너리 및 심볼릭 링크 /usr/bin/gpg -> /usr/bin/gpg2(이름 GnuPG는 및 우선 순위 50 참조).

gpg이론적 으로 기본값을 변경하면 시스템의 일부 패키지가 손상 될 수 있지만 데비안 스트레치 (현재 데비안의 안정적인 버전)도 비슷한 방식으로 기본값으로 설정gpg2gpg 되므로 너무 많은 문제가 발생하지 않습니다.