2016-07-14 4 views
7

Gitは、自分の秘密鍵のロックを解除するためのパスフレーズの入力を常に求めます。私はgitがコミットに署名する際にGnuPGパスワードを要求しないようにします。

+2

パスワードをキャッシュするには 'gpg-agent'を設定し、' max-cache-ttl'と一緒に 'default-cache-ttl'オプションを設定することができます。 – miqid

+0

私はgitを使ってそれを行う方法を探しています。 gitのパスワードキャッシュのように。 – pokemon

答えて

8

GitはGnuPGのパスフレーズのホールドを取得することはありませんコミットに署名しながら、それを毎回入力する必要はありませんように

git commit -S -m 'message' 

は、どのように私はキャッシュにパスワードを保存することができます。パスフレーズをキャッシングするGnuPGの機能に頼る必要があります。これは、~/.gnupg/gpg-agent.conf(WindowsのAppDataフォルダのどこかに隠されています)を編集することで簡単に設定できるgpg-agentによって行われます。

GnuPGを起動するたびにパスフレーズがキャッシュされる秒数をdefault-cache-ttlに設定します。 maximum-cache-ttlは、パスフレーズが最初に入力されてからキャッシュが消去されるまでの時間を設定します。 ignore-cache-for-signingが設定されていないことを確認します。そうでない場合、GnuPGは署名操作のためにキャッシュを無視します。

ユーザーの操作なしでコミットに署名する場合は、gpg-preset-passphraseでキャッシュを事前に設定できます。/usr/lib/gnupg2/gpg-preset-passphraseのような場所に隠れていることがよくあります。または任意の解読または署名操作を実行することによって実行される。 --passphrase [your passphrase]のようなオプションをgpgに渡すようにgitを設定することもできますが、この方法の制限とセキュリティ上の意味を読み取ることができます(パスフレーズはどこかの平文に保存されます)。あなたが本当にしたいか、すべてのコミットに署名する必要がない場合は

+0

私は '〜/ .gnupg/gpg-agent.conf'を持っていません。代わりに'〜/ .gnupg/gpg.conf'を持っています。その中に 'default-cache-ttl'を設定しても構いません。 – pokemon

+0

いいえ、これらのオプションは明示的に 'gpg-agent.conf'にあります。あなたは 'gpg-agent'がインストールされていますか(' gpg-agent'はエントリーを表示すべきですか?)それ以外の場合は、新しいファイルを作成してこれらのオプションを設定するだけです。 –

+0

ええ、gpg-agentがインストールされていますが、gpg-agent.confファイルやgpg.confファイルでも動作していません。ちなみに、私はUbuntu gnome 16.04を使用しています。あなたはこの方法で作業するのですか? – pokemon

-4

は、あなたが実行することによって、デフォルトで署名をオフに切り替えることができます

git config --global commit.gpgsign false 

あなたがコミット署名する場合は、使用して行うことができます-Sフラグ。このように..

git commit -S -m your commit message 

私の人生をもっと簡単にしました!

+0

あなたはこれがOPが求めていたものに答えることができると思いますか? –

+0

これは質問に対する答えを提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - [レビューから](/レビュー/低品質の投稿/ 17806364) –

関連する問題