Signing commits with GPG をした
GitHub のヘルプ を参考に設定した。
プログラミング初心者な人に .gitconfig の設定を参考にしてもらおうと雑に渡したら user.name と email をそのまま使われてしまって、成りすましのようになってしまったことが発端。
どう防ぐのかいいか少し悩んだけど、僕の方で署名しておくのが妥当かなと思い至った。
設定したので Verified マークがついた図。
設定メモ
gpg コマンドインストール
$ brew install gpg
GPG key を作成
日本語だと文字化けして何を言ってるんだお前は状態になったので、英語指定してる。
$ LANG=en_US.utf-8 gpg --full-gen-key $ gpg --list-secret-keys --keyid-format LONG Users/utahta/.gnupg/pubring.kbx -------------------------------- sec rsa4096/<サインキー> 2017-11-09 [SC] [有効期限: 2019-11-07] ... 略 ... $ gpg --armor --export <サインキー> | pbcopy
コピーした GPG key を GitHub アカウントに追加
https://github.com/settings/keys
GPG Key ID を .gitconfig に追加
家と仕事場でキーを変えてみようと思い、.gitconfig.local に設定して include するようにした。
$ vi ~/.gitconfig.local [user] signingkey = <サインキー>
共用したければ export & import すれば良い。
$ gpg -o secret.key --export-secret-key <メールアドレス> ... 持ち運び ... $ gpg --import secret.key
その他細かい設定
必要だったので追加した(ちゃんと調べてない)。
$ vi ~/.zshrc export GPG_TTY=$(tty)
毎回 git commit -S したくない場合。
$ vi ~/.gitconfig [commit] gpgsign = true
ちなみに
GPG Key 作成時に、自分の GitHub アカウントで認証していないメールアドレスを使うと Unverified になる。
全ての commit に署名をつけるのは悪手という話もみたけど、今回の意図とはそぐわないのでみなかったことにした。