Reprepro 및 gpg-agent - 비밀번호가 캐시되지 않습니다.

Reprepro 및 gpg-agent - 비밀번호가 캐시되지 않습니다.

나는 여기서 약간 좌절감을 느꼈습니다. 아마도 문제가 어디에 있는지 알 것입니다.

  • 마지막에 여러 개의 reprepro 명령이 있는 빌드 프로세스가 있습니다.
  • 빌드 스크립트는 sudo를 사용하여 실행됩니다.

    ( cd "$PUBLISHDIR" && \
    reprepro -Vb . -C untested remove squeeze foobar && \
    reprepro -Vb . -C untested includedeb squeeze ./foobar_*.deb && \
    reprepro -Vb . -C untested list squeeze foobar )
    
  • gpg를 설정하고 키를 추가했습니다. 에이전트가 실행 중입니다.

    ps lax | grep gpg-agent
    
    1  1002 25345     1  20   0  19284   996 -      Ss   ?          0:00 /usr/bin/gpg-agent --daemon --sh
    
  • 내 gpg-agent.conf도 설정되었습니다

    # ignore-cache-for-signing
    enable-ssh-support
    write-env-file /home/daily/.gnupg/gpg-agent-info
    default-cache-ttl 31536000
    default-cache-ttl-ssh 31536000
    max-cache-ttl 31536000
    max-cache-ttl-ssh 31536000
    debug-all
    
  • 이렇게 .bashrc에서 에이전트를 시작합니다.

    GNUPGHOME=~/.gnupg
    GPGAGENT=/usr/bin/gpg-agent
    PID_FILE=$GNUPGHOME/gpg-agent-info
    
    if grep -qs '^[[:space:]]*use-agent' "$GNUPGHOME/gpg.conf" "$GNUPGHOME/options" && test -x $GPGAGENT & then
      if [ -r "$PID_FILE" ]; then
        . "$PID_FILE"
        count=`ps lax | grep "/usr/bin/gpg-agent" | grep "$SSH_AGENT_PID" | wc -l`
        if [ $count -eq 0 ]; then
          if ! $GPGAGENT 2>/dev/null; then
            $GPGAGENT --daemon --sh > "$PID_FILE"
            . "$PID_FILE"
            echo "INFO::agent started"
          fi
        else
          echo "INFO::agent already running"
        fi
      fi
    fi
    ssh-add
    

하지만 전체 프로세스를 얼마나 자주 실행하더라도, reprepro 서명 프로세스 중에 항상 비밀번호를 묻는 메시지가 나타납니다. 나는 프록시가 이 비밀번호를 캐시하고 다음에 실행될 때 저장되고 다시 묻지 않을 것이라고 생각했습니다. 그러나 비밀번호를 묻습니다... 계속해서...

버그나 다른 이유가 왜 항상 비밀번호를 요구하는지 생각할 수 있는 사람이 있나요?

관련 정보