web-dev-qa-db-ja.com

WindowsでGit用にGPGを構成する

Git Bashを含むGit for WindowsをWindows 10およびGpg4winにインストールしました。デフォルトでは、Kleopatra経由で作成したすべてのキーをGit Bashに組み込まれたGPGバージョンに再インポートする必要があり、エージェントをセットアップできません。私がする必要があるのは、毎回パスワードを入力する必要がなく、一定期間内に初めて入力するだけで済むように、歌を自動化することです。そんなことがあるものか?

このチュートリアル を実行しようとしましたが、gpg2はGit Bash内から実行されたときに正しい文字セットを使用しないため、非ASCII文字を含むキーを認識しません。

この問題を解決する方法はありますか? WindowsでGitでPGP署名を使用する最良の方法は何ですか?

15
just.me

以下で説明PHPirate :として2018年10月に更新

λ git --version
git version 2.19.1.windows.1

λ gpg --version
gpg (GnuPG) 2.2.9-unknown
libgcrypt 1.8.3
Copyright (C) 2018 Free Software Foundation, Inc.

git-for-windows/git/releases にはその更新のトレースはありません


元の回答(2017):デフォルトでは、Git for Windowsにはgpg2ではなくgpg1が含まれています

vonc@bvonc MINGW64 ~/.ssh
$ gpg --version
gpg (GnuPG) 1.4.21

異なるgpgを使用することは確かにお勧めです:

git config --global gpg.program "c:/Program Files (x86)/GnuPG/bin/gpg.exe"

Windows用の最新のGitロケールに設定されたUTF-8 で再試行してください。
他のプログラムからの干渉を排除するために、 Gitの簡略化されたパス を試してください。

18
VonC

(少なくとも)git 2.19.1以降、gitにはgpg2!が含まれています

つまり、git署名のためだけにgpg4winをインストールする必要はありません。特定のタイムアウト後にパスフレーズを入力するだけでよいようにコミット署名を設定する方法を尋ねます:gpg-agentはそれを処理でき、gitのgpgで動作することをテストしました(gnupgのgpgでは動作しません)。それは私にとって常に機能するとは限りませんが、一般的に機能するはずです。

以下は、サインアップのセットアップが完了していることを前提に、 here と書き留めた完全な手順の短い要約です。

  1. Gitのgpgを使用していることを確認してください
  2. C:\Users\username\.gnupg\gpg-agent.conf(存在しない場合はファイルを作成)でキャッシュ時間を更新し、default-cache-ttl 34560000およびmax-cache-ttl 34560000を追加します。これらの時間は秒単位で、必要なものを選択します。
  3. gpgconf --kill gpg-agentを使用してgpg-agentを再起動します。
6
PHPirate