飽き性の頭の中
GitHub上でコミットにVerifiedと表示されるように署名を勝手にしてもらうのサムネイル

GitHub上でコミットにVerifiedと表示されるように署名を勝手にしてもらう

2023-10-14に公開

※ Zennのスクラップに書いていたものをまとめたものです

https://zenn.dev/tawachan/scraps/b7ac4bc62a58c8
https://zenn.dev/tawachan/scraps/b7ac4bc62a58c8

概要

最終的に、GitHubのコミットにVerifiedと表示されるようにする。

2023 10 14 21 56 02

やることとしては、

  • GPGキーを作成して、gitでコミット時に署名するようにする
  • pinentry-mac でパスフレーズを毎回入力しなくても署名できるようにする

という2つの手順がある。

基本的に以下を参考にした。

GPGキーを作成して、gitでコミット時に署名するようにする

GPGキーを作成する

gpgをインストールする

brew install gpg

gpgキーを作成する

$ gpg --full-generate-key                                                                                                          1.2m  2023/10/12 PM 07:20:53
gpg (GnuPG) 2.4.3; Copyright (C) 2023 g10 Code GmbH
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

gpg: ディレクトリ'/Users/tawachan/.gnupg'が作成されました
ご希望の鍵の種類を選択してください:
   (1) RSA と RSA
   (2) DSA と Elgamal
   (3) DSA (署名のみ)
   (4) RSA (署名のみ)
   (9) ECC (署名と暗号化) *デフォルト
  (10) ECC (署名のみ)
  (14) カードに存在する鍵
あなたの選択は? 1
RSA 鍵は 1024 から 4096 ビットの長さで可能です。
鍵長は? (3072) 4096
要求された鍵長は4096ビット
鍵の有効期限を指定してください。
         0 = 鍵は無期限
      <n>  = 鍵は n 日間で期限切れ
      <n>w = 鍵は n 週間で期限切れ
      <n>m = 鍵は n か月間で期限切れ
      <n>y = 鍵は n 年間で期限切れ
鍵の有効期間は? (0)0
鍵は無期限です
これで正しいですか? (y/N) y

GnuPGはあなたの鍵を識別するためにユーザIDを構成する必要があります。

本名: ***
電子メール・アドレス: ***@gmail.com
コメント:
次のユーザIDを選択しました:
    "*** <***@gmail.com>"

名前(N)、コメント(C)、電子メール(E)の変更、またはOK(O)か終了(Q)? O
たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動か
す、ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生
成器に十分なエントロピーを供給する機会を与えることができます。
たくさんのランダム・バイトの生成が必要です。キーボードを打つ、マウスを動か
す、ディスクにアクセスするなどの他の操作を素数生成の間に行うことで、乱数生
成器に十分なエントロピーを供給する機会を与えることができます。
gpg: /Users/tawachan/.gnupg/trustdb.gpg: 信用データベースができました
gpg: ディレクトリ'/Users/tawachan/.gnupg/openpgp-revocs.d'が作成されました
gpg: 失効証明書を '/Users/tawachan/.gnupg/openpgp-revocs.d/******.rev' に保管しました。
公開鍵と秘密鍵を作成し、署名しました。

pub   rsa4096 2023-10-12 [SC]
      ***
uid                      *** <***@gmail.com>
sub   rsa4096 2023-10-12 [E]

この際、入力したパスフレーズは忘れないように何処かに控えておく。

作成した鍵の確認

$ gpg --list-secret-keys --keyid-format=long                                                     1124ms  2023/10/14 PM 09:45:27
[keyboxd]
---------
sec   rsa4096/088E4C4555EAE6BB 2023-10-12 [SC]
      ******
uid                 [  究極  ] *** <***@gmail.com>
ssb   rsa4096/****** 2023-10-12 [E]

鍵のID(上の例では088E4C4555EAE6BB)も控えておく。

gitに鍵を登録する

$ git config --global user.signingkey *****(さっきのID)

特定のリポジトリだけで有効にしたい場合は、--globalを外して然るべき場所で実行する。

常に署名するように設定

$ git config --global commit.gpgsign true

環境によっては、これも実行しておいたほうがいいかもしれない。

$ git config --global gpg.program gpg

pinentry-mac でパスフレーズを毎回入力しなくても署名できるようにする

pinentry-macをインストールする

brew install pinentry-mac

gpg-agent.confを編集する

$ echo "pinentry-program $(which pinentry-mac)" > ~/.gnupg/gpg-agent.conf

gpg-agentを再起動する

$ gpgconf --kill gpg-agent

確認

あとは、コミットを試みれば署名できるはず。

初回だけはダイアログが出るので、パスフレーズを入力する。

2023 10 14 22 08 55

このブログの運営者

Profile picture

たわ / tawachan

1994年生まれ(29歳)

大学院修士課程(政治学)(2021-2023)

Web開発(2017-)

タグ

#福岡:39#東京:20#大学院:15#移住:10#Firebase:9#Google:9#エナジードリンク:9#ブロックチェーン:9#Apple:7#Mac:7#Next.js:7#Sony:7#Webエンジニア:7#インドネシア:6#サントリー:6#英語:6#Googleフォト:5#a7iii:5#埼玉:5#AWS:4#Anker:4#Canon:4#EOS 8000D:4#Gatsby.js:4#Kindle:4#React:4#TypeScript:4#ZONe:4#iPad mini:4#コワーキングスペース:4#セブンイレブン:4#ラーメン:4#京都:4#仮想通貨:4#修士論文:4#内省:4#民主主義:4#社会人:4#鴨川シーワールド:4#Docker:3#EOS8000D:3#Firebase Hosting:3#Google Drive:3#Lightroom:3#Markdown:3#Pixel:3#React Native:3#Soundcore:3#d.school:3#iPad:3#アマルティア・セン:3#アメリカ:3#ジャカルタ:3#スピーカー:3#デザイン思考:3#ブログ:3#レッドブル:3#ワークショップ:3#卒業旅行:3#寿司:3#旅行:3#研究:3#紅葉:3#長崎:3#API:2#ChatGPT:2#Creative:2#ECR:2#ERC20:2#Expo.io:2#Firestore:2#GPT4:2#GitHub Actions:2#Kindle Oasis:2#Kindle Paperwhite:2#Kubernetes:2#LINE:2#Mac mini:2#MacBook Pro:2#NestJS:2#Notion:2#Oculus:2#Oculus Quest:2#Pixel Buds:2#VS Code:2#Zotero:2#iPhone:2#pandoc:2#re:Invent:2#かき小屋:2#くら寿司:2#カフェ:2#ギグワーカー:2#サーチコンソール:2#シェアオフィス:2#スターバックス:2#ステーキ:2#スマートウォッチ:2#ソラマチ:2#チョコレート:2#デモクラシー:2#ニューヨーク:2#バリ島:2#パンとエスプレッソと:2#ヒュッゲ:2#ビーチ:2#ブックスタンド:2#マクドナルド:2#ミズマチ:2#モンスターエナジー:2#リモートワーク:2#ワイヤレスイヤホン:2#三千院:2#両国:2#兵庫:2#千葉:2#博多:2#堀江貴文:2#宮崎:2#就活:2#嵐山:2#川越:2#広島:2#引用:2#新宿御苑:2#日米学生会議:2#早稲田:2#有馬温泉:2#東寺:2#東浩紀:2#機械学習:2#歯医者:2#歴史:2#江ノ島:2#浅草:2#清澄白河:2#温泉:2#独自ドメイン:2#神奈川:2#神戸:2#英検:2#転職:2

©2023 tawachan All Rights Reserved.