GPG 에이전트가 비밀번호를 캐시하도록하려면 어떻게해야합니까?


21

저는 개발자이며 일반적으로 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

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

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

답변:


24

에서 캐시 시간을 설정하는 것 외에도 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

0

위의 답변 외에도 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 되므로 너무 많은 문제가 발생하지 않습니다.

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