macOS環境で初めて git push を使ってGitHubへソースコードをプッシュしようとすると、ユーザー名とパスワードを求められて認証エラーになるトラブルがよく発生します。これは、GitHubが2021年8月以降、Git操作における従来のパスワード認証をセキュリティ強化のため完全に廃止したことが原因です。

本記事では、この問題を恒久的に解決するための主要な認証方式(Personal Access Token、macOSキーチェーン、SSH鍵、GitHub CLI)と最適化された設定フローを解説します。

背景と認証が必要な理由

なぜ認証方式が変更されたのか?

  • 書き込み権限の厳格な検証:リポジトリへのプッシュが正規の所有者によるものかを暗号学的に担保するため。
  • 従来型パスワードの廃止:ブルートフォース攻撃やパスワード漏洩リスクを排除するため。
  • 開発効率の向上:プッシュのたびにパスワードを手動入力する無駄な作業をなくすため。

利用可能な認証手段

  1. Personal Access Token(PAT):パスワードの代わりに使用するアクセス権限付きトークン。
  2. SSH鍵認証:鍵ペアによる安全で手間のない推奨方式。
  3. GitHub CLI(gh):ブラウザ連携で即座に設定できる公式CLIツール。

解決策1:Personal Access Token(PAT)を使用する

ステップ1:トークンの発行

  1. GitHubにログインします。
  2. 右上のプロフィールアイコンをクリックし、「Settings」を選択。
  3. 左サイドバー最下部の「Developer settings」をクリック。
  4. 「Personal access tokens」 > 「Tokens (classic)」を選択。
  5. 「Generate new token」 > 「Generate new token (classic)」をクリック。

GitHub: Personal access tokens

ステップ2:権限スコープと有効期限の設定

  • Note:「MacBook Pro 開発用トークン」など識別しやすい名前を入力。
  • Expiration:有効期限は「90 days」または「1 year」を推奨。
  • Scopes:最低限以下の項目にチェックを入れます:
    • repo(リポジトリの全操作権限)
    • workflow(GitHub Actionsを利用する場合)

「Generate token」をクリックし、生成された文字列をコピーして安全な場所に保存します(再表示されません)。

ステップ3:ターミナルでの利用

git push origin main
# Username: GitHubのアカウント名を入力
# Password: アカウントのパスワードではなく、上記で取得したトークンを貼り付け

解決策2:macOS キーチェーン(Keychain)に認証情報を保存する

毎回トークンを入力する手間を省くため、macOSネイティブのキーチェーンに認証情報を記憶させます。

キーチェーン連携の有効化

# Git が macOS キーチェーンを使用するよう設定
git config --global credential.helper osxkeychain

# 設定の確認
git config --global --get credential.helper

この設定後に一度 git push を行い、ユーザー名とトークンを入力すると、macOSから「git-credential-osxkeychain がキーチェーンにアクセスしようとしています」とポップアップが表示されます。「常に許可」を選択すれば、次回以降は自動認証されます。

保存済み情報の確認と削除

# 保存されている認証情報の確認
security find-internet-password -s github.com

# 期限切れなどで古いトークンを削除する場合
security delete-internet-password -s github.com

解決策3:SSH鍵による認証(長期利用に最もおすすめ)

頻繁にプッシュを行うエンジニアには、SSH鍵認証が最も快適で安全な選択肢です。

ステップ1:Ed25519 鍵ペアの生成

# 安全性の高い Ed25519 アルゴリズムで生成
ssh-keygen -t ed25519 -C "[email protected]"

# 保存先はデフォルト(~/.ssh/id_ed25519)で Enter

ステップ2:公開鍵をGitHubに登録

# macOS のクリップボードに公開鍵をコピー
pbcopy < ~/.ssh/id_ed25519.pub
  1. GitHubの「Settings」 > 「SSH and GPG keys」を開く。
  2. 「New SSH key」をクリック。
  3. Titleに端末名(例:「MacBook Pro M3」)を入力し、Key欄にコピーした公開鍵を貼り付けて登録。

ステップ3:リポジトリの接続方式をSSHに切り替え

# 現在のリモートURLを確認
git remote -v

# HTTPSからSSH形式に変更
git remote set-url origin [email protected]:username/repository.git

# 接続テスト
ssh -T [email protected]
# "Hi username! You've successfully authenticated..." と表示されれば完了

解決策4:GitHub CLI(gh)の活用

公式のコマンドラインツールを使えば、ブラウザ認証だけで設定が完了します:

# Homebrewでインストール
brew install gh

# インタラクティブログイン
gh auth login

画面の指示に従い、「GitHub.com」 > 「SSH または HTTPS」 > 「Login with a web browser」を選択するだけで、認証からキーの登録まで自動処理されます。

まとめ

ご自身の開発スタイルに合わせて適切な方法を選択してください:

  • 急ぎ・一時的な作業:Personal Access Token + macOS キーチェーン
  • メインの開発機(最も推奨):Ed25519 による SSH 鍵認証
  • GitHubの多機能連携:GitHub CLI(gh)

正しく認証を設定しておくことで、パスワードの煩わしさから解放され、安全かつスムーズな開発に集中できます。

✦ 独立した報道 · 読者サポート ✦

独自の視点と客観的な報道を、あなたの温かい支援で

表面的なトレンドやアルゴリズムに流されず、事実と深い洞察に基づいた独立した記事をお届けし続けるために。

質の高いオリジナル記事と独立した運営を続けるため、1回のみ、または毎月のご支援をGoogleの安全な決済でお願いいたします。

お支払いはGoogleにより安全に処理されます · いつでも管理・解約できます