最近、MacでGPGセットアップを取得しました。
brew install gpg;
brew install gpg-agent;
そして、パスフレーズでキーペアを生成しました。
use-agent
を~/.gnupg/gpg.conf
に追加し、allow-preset-passphrase
を~/.gnupg/gpg-agent.conf
に追加しました
私は正常にファイルを復号化しました:
gpg --use-agent --output example.txt --decrypt example.gpg
秘密鍵のパスフレーズを入力するように求められました。問題は、後続のファイルを復号化するときに、gpg-agent
が再びこのパスフレーズを要求することです。
現在、私のパスフレーズは非常に長い文字列で、毎回入力するのはほぼ不可能です。 gpg
がssh-agent
のように動作し、パスフレーズが安全に保存され、永久に(セッション間でも)記憶されるようにしたいと思います。
私のラップトップが構成されている場合、これによりセキュリティが低下する可能性があることを理解していますが、この不便のためにgpg
をすべて一緒に使用することはおそらく妨げられます。
次の場合はわかりません:
default-cache-ttl 31536000
max-cache-ttl 31536000
再起動の間に保存するために私が探しているオプションです残念ながらgpg-agent
のman
エントリはありません。
秘密鍵のパスフレーズをgpg
/gpg-agent
に永久に記憶させるにはどうすればよいですか?
おそらく環境変数$GPG_AGENT_INFO
が設定されていません。
一時的な対策としてできることは、gpg-agent bash
(または任意のシェル)を実行して、復号を再試行することです。
長期的には、ログアウトしてからシステムに再度ログインし、echo $GPG_AGENT_INFO
をもう一度確認することで解決できる場合があります。ある場合は、パスフレーズを毎回再入力する必要がない可能性が高いです。
ほとんどのLinuxディストリビューションには、このためのフックがあり、OSXはユーザーフレンドリーであると期待しています。もちろん、要件は、セッションを開始する前にgpg/gpg-agent
が利用可能(インストール済み)であることです。
このようにエージェントを起動する必要があります。
eval $(gpg-agent --daemon --write-env-file "${HOME}/.gnupg/.gpg-agent-info)"
次に、.bashrc
ファイルに次の行を追加します。
if [ -f "${HOME}/.gnupg/.gpg-agent-info" ]; then
. "${HOME}/.gnupg/.gpg-agent-info"
export GPG_AGENT_INFO
fi