#8: GPG key を作り直して再設定

GPG でのコミットへの署名、設定しなおしたらうまくいきました。先日やったときは手順をひとつ飛ばしてしまっていた気がします。

今日やったこと(Done)

# 公開鍵を確認
$ gpg --list-keys
# 秘密鍵を確認
$ gpg --list-secret-keys
# 公開鍵を削除
$ gpg --delete-keys
# 秘密鍵を削除
$ gpg --delete-secret-keys

前回は $ gpg --full-generate-key で作成しましたが、今回は $ gpg --gen-key で作成してみました。

こちらのエントリの内容に沿って設定していきます。

# 鍵を作成
$ gpg --gen-key

# <GPG key ID> を確認
$ gpg --list-secret-keys --keyid-format LONG

# Git に <GPG key ID> を設定する
$ git config --global user.signingkey <GPG key ID>

# Git に gpg の PATH を設定する
$ which gpg
$ git config --global gpg.program /usr/local/bin/gpg

# Git に自動的に署名付きでコミットするように設定する
$ git config --global commit.gpgsign true

# GPG の公開鍵を出力してクリップボードにコピー、GitHub に設定する
$ gpg --armor --export <GPG key ID> | pbcopy

(追記 2020-08-09 0:55)

諸々設定してからコミットしてみると以下のエラーが出ました。

$ git commit -S -m 'Initial commit'
error: gpg failed to sign the data
fatal: failed to write commit object

下記のコマンドで一度 gpg-agent を kill してからコミットするとうまくいきました。

$ gpgconf --kill gpg-agent 

参照記事 : gnupg - Git error - gpg failed to sign data - Stack Overflow

(追記 ここまで)

clone したリポジトリに変更を加えて -S をつけて commit して push したところ、うまくいったようです。

Image from Gyazo

Verified!

わかったこと(Fact)

fish

  • コマンドの実行結果を他のコマンドに渡すには括弧 ( ) でくくる。
$ echo (which gpg)
/usr/local/bin/gpg

参考文献(References)

その他

  • マシンにログインして iTerm を起動したらたら、まず最初に ssh-agent にパスフレーズを登録する。
    • $ ssh-add ~/.ssh/id.rsa

次にやること(Next)