web-dev-qa-db-ja.com

GPGエージェントにパスフレーズを永続的に保存させる

最近、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が再びこのパスフレーズを要求することです。

現在、私のパスフレーズは非常に長い文字列で、毎回入力するのはほぼ不可能です。 gpgssh-agentのように動作し、パスフレーズが安全に保存され、永久に(セッション間でも)記憶されるようにしたいと思います。

私のラップトップが構成されている場合、これによりセキュリティが低下する可能性があることを理解していますが、この不便のためにgpgをすべて一緒に使用することはおそらく妨げられます。

次の場合はわかりません:

default-cache-ttl 31536000
max-cache-ttl 31536000

再起動の間に保存するために私が探しているオプションです残念ながらgpg-agentmanエントリはありません。

秘密鍵のパスフレーズをgpg/gpg-agentに永久に記憶させるにはどうすればよいですか?

4
James Taylor

おそらく環境変数$GPG_AGENT_INFOが設定されていません。

一時的な対策としてできることは、gpg-agent bash(または任意のシェル)を実行して、復号を再試行することです。

長期的には、ログアウトしてからシステムに再度ログインし、echo $GPG_AGENT_INFOをもう一度確認することで解決できる場合があります。ある場合は、パスフレーズを毎回再入力する必要がない可能性が高いです。

ほとんどのLinuxディストリビューションには、このためのフックがあり、OSXはユーザーフレンドリーであると期待しています。もちろん、要件は、セッションを開始する前にgpg/gpg-agentが利用可能(インストール済み)であることです。

1
Anthon

このようにエージェントを起動する必要があります。

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
0
Deathgrip