タグに署名したときにgitにパスフレーズを自動入力させるにはどうすればよいですか?--passphrase "my long passphrase"のようなオプションはありますか?ssh-keygenを使用してみましたが、役に立ちませんでした。
リポジトリはローカルにあり、すべてがローカルで行われます。
mipadiが言うように、要求されているのはGPGキーのパスワードです。あなたが提案するようにあなたは本当にそれをあなたのコマンドラインに望まないでしょう、それはそれが他のユーザーに見えるようになりそしてあなたのセキュリティを危うくするかもしれないからです。これを知っていると、gpgとgitの作成者は、あなたがそのように自分の足で自分を撃つことを許可しません。もちろん、これは自動化された方法でこれを行う方法の質問を促し、パスワードを100回入力することで自分を殺さないようにします。
これgpg-agent
には非常に便利です。gpgとは別にインストールする必要があるかもしれません(たとえば、Ubuntuではパッケージが必要ですgnupg-agent
)。次に~/.gnupg/gpg.conf
、次の行が含まれていることを確認します(コメントなし):
use-agent
gpg-agentがインストールされていると、システムが自動的にgpg-agentを呼び出す場合があります。環境変数GPG_AGENT_INFO
が定義されている場合は、問題ありません。それ以外の場合は、エージェントを開始します。
eval $(gpg-agent --daemon --sh)
(これはbash用です。他のシェルの必要に応じて調整してください。)
これで、GPGキーのロックを解除する必要がある場合、パスワードを入力するためのポップアップウィンドウ(またはその他の方法)が表示されます。入力した後は、もう一度入力する必要はありません。他のすべてのリクエストは、すでにキーのロックが解除されているエージェントに送信されるためです。
SSHパスワードではなく、GPGキーチェーンパスワードの入力を求められています。代わりに入力してください。
誰かが興味を持った場合に備えて、私は自分の問題の方法を見つけました。
1.この内容で新しい/usr/ bin/gpg-with-passphraseを作成します
/usr/bin/gpg --passphrase "My Really Long passphrase" --batch --no-tty "$@"
2.新しい/usr/ bin/gpg-with-passphraseを実行可能にします
chmod 755 /usr/bin/gpg-with-passphrase
3.このオプションをgitconfigに追加します
git config gpg.program "/usr/bin/gpg-with-passphrase"
グローバルには「--global」を使用します
このようにして、タグに署名するたびにロングパスフレーズを入力する必要がありません。