Git Security

自分のなりすましを防ぎ、重要なブランチを守るためのセキュリティプラクティス。

1. Signed Commits (GPG / SSH)

graph TD
    User[Dev] -->|Sign wtih GPG/SSH| Commit[Signed Commit]
    Commit -->|Push| GitHub
    GitHub -->|Verify Public Key| Badge[Verified Badge ✅]

Gitは設定さえすれば誰でも他人になりすましてコミットできてしまいます。これを防ぐために署名を行います。

最近はSSHキーを使った署名が簡単でおすすめです(GitHubも対応済み)。

Configuring SSH Signing
# 1. Configure Git to use SSH for signing
git config --global gpg.format ssh
# 2. Set your SSH key
git config --global user.signingkey ~/.ssh/id_ed25519.pub
# 3. Sign all commits by default
git config --global commit.gpgsign true
# 4. Sign a specific tag
git tag -s v1.0.0 -m "Release v1.0.0"

2. Branch Protection Rules

GitHubリポジトリの `Settings > Branches` で設定できる、mainブランチを守るための最強の盾です。

Recommended Settings

  • Require a pull request before merging (直接push禁止、必ずPR経由)
  • Require status checks to pass before merging (CI (テスト) が通らないとマージ不可)
  • Require linear history (マージコミットを減らし、履歴をきれいに保つ)
  • Do not allow bypassing the above settings (管理者でもルールを破れないようにする)