2.1.15에서 gpg-preset-passphrase를 사용하여 pinentry를 통해 입력된 비밀번호를 캐시하려면 어떤 단계가 필요합니까?

2.1.15에서 gpg-preset-passphrase를 사용하여 pinentry를 통해 입력된 비밀번호를 캐시하려면 어떤 단계가 필요합니까?

무인 컴퓨터에서 사용할 암호를 캐시하려고 합니다. 이 작업과 관련된 위험이 있기 때문에 어떤 암호 문구가 캐시되는지 선택적으로 선택하고 둘 다 설정하지 않고 성가시게 높은 값 default-cache-ttl으로 설정하지 않고 주기적으로 전체 캐시를 지울 max-cache-ttl필요가 없도록 하는 것을 선호합니다 gpg-agent. 그래서 해결책을 찾고 있습니다. gpg-preset-passphrase. 문제 해결 중에 찾은 정보 중 일부는 이전 버전의 GnuPG와 관련되어 있으므로 모든 차이점을 완전히 설명했는지는 확실하지 않습니다.

먼저 규칙에 따라 .bashrc에 .bashrc가 있습니다 man 1 gpg-agent.export GPG_TTY=$(tty)

eval $(gpg-agent --daemon --allow-preset-passphrase --default-cache-ttl 1 --max-cache-ttl 31536000)이제 start gpg-agent를 실행하고 주목한다고 가정해 보겠습니다.gpg-preset-passphrase는 여전히 --max-cache-ttl을 준수합니다.(기본값은 2시간).

$KEYGRIP그런 다음 키그립을 사용하여 필요한 비밀 하위 키를 가져옵니다 gpg --with-keygrip -K.

그것이 내가 시도하는 것입니다 /path/to/gpg-preset-passphrase -c $KEYGRIP. Enter 키를 누르면 다음과 같이 인쇄됩니다.

   gpg-preset-passphrase: caching passphrase failed: Not implemented

--verbose --debug 6 --log-file /path/to/gpg-agent.log다시 추가 하려고 시도했는데 gpg-agent내 로그가 추가되었습니다.

   gpg-agent[4206] listening on socket /run/user/1000/gnupg/S.gpg-agent
   gpg-agent[4207] gpg-agent (GnuPG) 2.1.15 started
   gpg-agent[4207] handler 0x7f86ef783700 for fd 5 started
   gpg-agent[4207] command PRESET_PASSPHRASE failed: Not implemented
   gpg-agent[4207] handler 0x7f86ef783700 for fd 5 terminated

소스 코드를 파고드는 것 외에 어디서부터 시작해야 할지 잘 모르겠어서, 처음에 내가 취하고 있는 단계를 누군가가 수정할 수 있는지 궁금했습니다.

답변1

표준 입력을 통해 비밀번호를 보내려는 것 같습니다 gpg-preset-passphrase.아니요에코합니다(프로세스 목록에 노출되지 않도록).

/path/to/gpg-preset-passphrase -c $KEYGRIP <<< $PASSPHRASE

Bash 외부의 이식성에 관심이 있는 경우:

/path/to/gpg-preset-passphrase -c $KEYGRIP <<EOF
$PASSPHRASE
EOF

"Here Documents" 구문(EOF)에 대한 이 답변은 나에게 매우 중요했습니다.https://unix.stackexchange.com/a/88492

당신은 또한 홈즈가 언급한 것과 같은 것이 필요합니다 allow-preset-passphrase.~/.gnupg/gpg-agent.conf

대칭 암호화를 사용하여 이 작업을 수행하려면(제가 정신을 잃었기 때문에 그럴 필요가 없을 수도 있습니다) gpg-agent people에서 비밀번호를 사전 설정하기 위한 올바른 키그립/캐시 ID를 찾는 방법에 대한 답변을 참조하세요.https://superuser.com/a/1485486/1093343

답변2

또한 이 문제가 발생하여 gpg-agent에 구성을 추가하여 문제를 해결했습니다. 여기에서 찾을 수 있습니다.

https://stackoverflow.com/questions/49491679/how-to-enter-gnupg-agent-key-passhprase-from-cli

관련 정보