Tôi có thể nhập mật khẩu gpg của mình chỉ một lần và mở khóa tất cả các khóa phụ của mình (ký, giải mã, xác thực) không?
Hiện tại, tôi cần nhập mật khẩu gpg ba lần (để ký, để giải mã, để xác thực). Điều này thật bất tiện.
Tôi đã cố gắng đưa ra một kịch bản shell.
#!/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"
Nhưng thật không may, cách đó mật khẩu gnupg-agent không lưu mật khẩu. Điều này có thể được sửa chữa?
Thông tin hệ thống:
- Khi không sử dụng tập lệnh shell đó, tôi không gặp vấn đề gì với gnupg-agent. Khi tôi ký / giải mã thủ công một tệp trong shell, pinentry yêu cầu mật khẩu hai lần, sau đó lưu lại cho đến khi khởi động lại.
- Sử dụng Debian Wheezy.
- phiên bản 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)
Tôi đã hỏi trên danh sách gửi thư của người dùng gnupg một lúc trước, nhưng không trả lời.
Có lẽ câu trả lời này sẽ làm việc? Có lẽ gpg-connect-agent
là bắt buộc?
exec 3<<<"$passphrase"
thậm chí còn mới đối với tôi ... Và tôi vừa ném 250 tiền thưởng vào câu trả lời mà bạn trích dẫn.