gitで署名付きコミット(windowsでGPG設定をする)

git 開発環境構築


今回のはまりポイントとしては、

  • ubuntuではECC設定ができない、windows power shellのみできる
  • sourcetreeでは、ECC設定ができない(現在macのみできるとの事)

結果としては、

windows power shellで設定してdefaultでGPG設定をしていれば、
sourcetreeでpushした際にも反映されます。

下記がすごい参考になります。

Gpg4win のインストール

git config --global -e

でgit configを編集し

signingkey = にGPGで設定したkeyを入れる。
signingkeyは下記コマンドで確認できる。

--list-secret-keys

コマンドを実行すると下記のような感じの項目が表示される。

C:\Users\ユーザー名\AppData\Roaming\gnupg\pubring.kbx
------------------------------------------------
sec   ed26519 2022-02-09 [SC]
      FD2BBBCghjkiuhjkiuyghjkiuhjkugbnjkuhBC715
uid           [ultimate] 設定した名前
ssb   cv26519 2022-02-09 [E]

今回は下記のようになった。

[user]
        name = 設定した名前
        email = 設定したメール
        signingkey = FD2BBBCghjkiuhjkiuyghjkiuhjkugbnjkuhBC715(GPGで設定したkey)
[credential]
        helper = !'C:\\Users\\ユーザー名\\AppData\\Roaming\\GitCredStore\\git-credential-AWSSV4.exe' --profile=codecommit
        UseHttpPath = true
[difftool "sourcetree"]
        cmd = '' \"$LOCAL\" \"$REMOTE\"
[mergetool "sourcetree"]
        cmd = "'' "
        trustExitCode = true
[filter "lfs"]
        required = true
        clean = git-lfs clean -- %f
        smudge = git-lfs smudge -- %f
        process = git-lfs filter-process
[commit]
        gpgsign = true
[gpg]
        program = C:\\Program Files (x86)\\GnuPG\\bin\\gpg.exe
[core]
        quotepath = false

ubuntuでもECC設定できたので鍵の作成方法

以前の設定のタイミングではうまくいかなかったのですが、2022/4/15現在で設定したらうまくいきました。
まずはgpgのインストール

sudo apt install gnupg

gpgで鍵の作成

gpg --gen-key
gpg --expert --full-gen-key

参考

https://gist.github.com/hatsusato/1d5f0267bc9d02bb24c60bd7acc5a59a

.gitconfigに設定の追加