gpg 비밀번호를 한 번만 입력하고 모든 하위 키 (서명, 암호 해독, 인증)를 잠금 해제 할 수 있습니까?
현재 gpg 비밀번호를 세 번 입력해야합니다 (서명, 암호 해독, 인증). 불편합니다.
쉘 스크립트를 생각해 보았습니다.
#!/bin/bash
set -x
set -e
set +o history
signing_key=77BB3C48
encryption_key=CE998547
tempfile="$(mktemp)"
echo "test" > testfile
unset passphrase || exit 1
read -sp 'Enter password. ' passphrase ; echo
exec 3<<<"$passphrase"
gpg2 --no-tty --use-agent --batch --yes --passphrase-fd 3 --sign-with "$signing_key" --clearsign "$tempfile"
gpg2 --no-tty --use-agent --verify "$tempfile.asc"
gpg2 --no-tty --use-agent --yes --armor --recipient "$encryption_key" --encrypt "$tempfile"
exec 3<<<"$passphrase"
gpg2 --no-tty --use-agent --batch --decrypt --passphrase-fd 3 "$tempfile.asc"
그러나 불행히도 암호 gnupg-agent는 암호를 캐시하지 않습니다. 이 문제를 해결할 수 있습니까?
시스템 정보:
- 해당 쉘 스크립트를 사용하지 않으면 gnupg-agent에 문제가 없습니다. 쉘에서 파일을 수동으로 서명 / 암호 해독하면 pinentry가 암호를 두 번 요청한 다음 재부팅 할 때까지 캐시합니다.
- 데비안 Wheezy 사용하기.
- gpg 버전 :
dpkg -l | grep gnupg
ii gnupg 1.4.12-7+deb7u3 i386 GNU privacy guard - a free PGP replacement
ii gnupg-agent 2.0.22-3 i386 GNU privacy guard - password agent
ii gnupg-curl 1.4.12-7+deb7u3 i386 GNU privacy guard - a free PGP replacement (cURL)
ii gnupg2 2.0.22-3 i386 GNU privacy guard - a free PGP replacement (new v2.x)
gnupg-users 메일 링리스트에서 얼마 전에 물어 봤지만 답장은 없습니다.
아마도 이 대답은 일 것인가? 아마도 gpg-connect-agent
필요할까요?
exec 3<<<"$passphrase"
나에게도 새롭다 ... 그리고 나는 당신이 인용 한 답에 250 명의 현상금을 던졌다.