1. 導入:なぜコミットに「署名」が必要なのか?
プログラミングの世界では、他人があなたの名前を騙ってコードを投稿する「なりすまし」のリスクがあります。また、悪意のある第三者が不正なコードを混入させることを防ぐため、GitHubでは「このコミットは本当に本人によるものか?」を証明する仕組みが用意されています。それが「コミット署名」です。これを設定することで、あなたのGitHubプロフィールに「Verified(検証済み)」バッジが表示され、信頼性の高いエンジニアであることの証明になります。
2. 基礎知識:コミット署名の仕組み
コミット署名とは、暗号技術を使って「この変更は私の秘密鍵で作成したものです」と署名を添える技術です。以前はGPG鍵を使うのが一般的でしたが、現在はより手軽なSSH鍵を使った署名が主流です。
SSH鍵とは、あなたのパソコンとGitHubなどのサーバー間で通信を行うための「鍵」のことです。この鍵を「通信」だけでなく「コミットの正当性証明」にも使い回すことで、管理の手間を大幅に減らすことができます。
3. 実装:SSH署名を設定する手順
まずはSSH鍵が手元にあるか確認し、それをGitHubに登録してからGitの設定を行います。
1. SSH鍵の作成: すでにGitHubへSSH接続できているなら、既存の鍵を流用可能です。
2. GitHubへの登録: GitHubの設定画面「SSH and GPG keys」から、公開鍵(.pubファイルの中身)を登録します。
3. Gitへの設定: git configコマンドを使い、署名にSSH鍵を使うよう指示を出します。
4. サンプルプログラム:設定用コマンド集
以下のコマンドを順に実行することで、あなたのGit環境で署名設定が完了します。ターミナル(コマンドプロンプト)で実行してください。
1. 署名にSSH鍵を使うことをGitに教える
git config –global gpg.format ssh
2. 署名に使用する公開鍵のパスを指定する
「あなたの公開鍵の場所」には id_ed25519.pub などのパスを入れてください
git config –global user.signingkey ~/.ssh/id_ed25519.pub
3. 今後のコミットすべてに自動で署名をつける設定
git config –global commit.gpgsign true
4. 設定の確認(各項目が正しく表示されればOK)
git config –global –list
5. 応用・注意点:現場での運用ポイント
設定後の注意点として、以下の3点を覚えておいてください。
・鍵の管理: 秘密鍵を紛失すると署名ができなくなります。また、鍵が流出すると他人があなたになりすませるため、パスフレーズは必ず設定しましょう。
・Verifiedバッジが出ない場合: GitHubのアカウント設定で、メールアドレスが正しく登録されているか確認してください。Gitのユーザー設定(user.email)とGitHubのメールアドレスが一致していないと、署名が正しく認識されません。
・チーム開発での推奨: 最近の企業開発では、セキュリティ強化の一環として「署名のないコミットはマージを許可しない」という制限をかけるプロジェクトが増えています。今のうちに設定しておけば、どんなプロジェクトでもスムーズに参加できるようになりますよ。

コメント