![gpg-agent를 사용할 때에도 gpg가 여전히 비밀번호를 요구하는 이유는 무엇입니까?](https://linux55.com/image/94737/gpg-agent%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EB%95%8C%EC%97%90%EB%8F%84%20gpg%EA%B0%80%20%EC%97%AC%EC%A0%84%ED%9E%88%20%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%EB%A5%BC%20%EC%9A%94%EA%B5%AC%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
다음과 같이 gpg-agent를 시작합니다.
eval `gpg-agent --daemon --preset`
그리고 이 터미널 창에서 권장되는 대로 gpg-preset-passphrase 명령을 사용하십시오.
echo secretpassword | /usr/libexec/gpg-preset-passphrase --preset KEYGRIPID
그런 다음 나는이 답변비밀번호가 실제로 올바르게 캐시되었는지 확인하세요.
echo 'GET_PASSPHRASE --no-ask KEYGRIPID Err Pmt Des'|gpg-connect-agent |
perl -pe 's/([0-9a-fA-F]{2})/chr(hex $1)/eg'
지금 gpg를 실행하여 무언가에 서명하거나 암호화하면 비밀번호를 묻는 메시지가 표시됩니다. 이런 일은 일어나서는 안 됩니다.
gpg -u KEYGRIPID --clearsign --batch somefile.txt
<curses-based prompt>
비밀번호를 올바르게 입력하고 gpg-sign 명령을 다시 실행하면 프롬프트가 표시되지 않습니다. 이는 비록 다르지만 비밀번호가 캐시되었음을 나타냅니다.
GPG 버전 2.0.14
답변1
이것은 아니다건반하지만지문열쇠.이것은 참고자료입니다. 원하는 값을 추출하는 데 도움이 되는 추악한 Perl 스크립트는 다음과 같습니다.
gpg -K --fingerprint |
perl -lne '$/="\n\n"' \
-e if ( ($len,$grip,$fp)=/^sec\s+(\w+)\/([0-9A-Z]+).* fingerprint = (.*?)\s+uid\s/ms)' \
-e { $fp =~ s/\s*//g; print "$grip $fp";}'
산출:
EF2141BE 24C5202D6905CB0A5C94AB36134E3618EF6141B8
1BA3D65B 484EE4F3DC2595FAF91F51A9731342954BAFD753
두 번째 열을 복사하여 사전 설정 명령에 전달합니다.
echo secretpassword | /usr/libexec/gpg-preset-passphrase --preset