GitHub 認証エラー「Support for password authentication was removed」の解決方法
問題の概要
2021年8月13日以降、GitHubはパスワード認証のサポートを終了しました。この変更により、従来のユーザー名とパスワードを使用したGit操作(git push
、git pull
、git clone
など)ができなくなり、以下のようなエラーメッセージが表示されます:
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for ...
推奨される解決方法
方法1: パーソナルアクセストークン(PAT)の使用
GitHubでは、パスワードの代わりにパーソナルアクセストークン(PAT)を使用することを推奨しています。
パーソナルアクセストークンとは
GitHubアカウントに代わってAPIやGit操作を認証するためのトークンで、パスワードよりも安全で細かい権限制御が可能です。
PATの生成手順
- GitHubにログイン後、[Settings] → [Developer settings] → [Personal access tokens] → [Tokens (classic)] に移動
- [Generate new token] をクリック
- 必要な権限(スコープ)を選択(通常は
repo
で十分) - 有効期限を設定(セキュリティ上、定期的な更新が推奨されます)
- [Generate token] をクリックし、表示されたトークンを安全な場所に保存
重要
トークンは生成時に一度しか表示されないため、必ずコピーして安全な場所に保存してください。紛失した場合は再生成が必要です。
各OSでのPAT設定方法
# 資格情報マネージャーを開く
# 「Windows Credentials」→「git:https://github.com」を編集
# パスワード欄にPATを入力
# または新規追加:「Generic Credential」で以下を設定
# インターネットアドレス: git:https://github.com
# ユーザー名: GitHubユーザー名
# パスワード: PAT
# キーチェーンアクセスを開く
# 「github.com」を検索
# 該当エントリをダブルクリックし「パスワードを表示」
# パスワード欄にPATを入力して保存
# エントリがない場合は新規作成:
# キーチェーン項目名: https://github.com
# アカウント名: https://github.com
# パスワード: PAT
# Git設定の更新
git config --global user.name "あなたのGitHubユーザー名"
git config --global user.email "あなたのメールアドレス"
# 資格情報ヘルパーの設定
git config --global credential.helper cache
# 初回操作時にPATを使用
git clone https://github.com/ユーザー名/リポジトリ名.git
# ユーザー名: GitHubユーザー名
# パスワード: PAT
方法2: SSH認証の使用
より安全で便利な方法として、SSH認証を使用することをお勧めします。
SSH鍵の設定手順
SSH鍵の生成(既にある場合は不要):
bashssh-keygen -t ed25519 -C "your_email@example.com"
SSHエージェントの起動と鍵の追加:
basheval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519
公開鍵をGitHubに登録:
- GitHubの[Settings] → [SSH and GPG keys] → [New SSH key]
- 公開鍵(
~/.ssh/id_ed25519.pub
の中身)を貼り付け
リポジトリのURLをSSH形式に変更:
bashgit remote set-url origin git@github.com:ユーザー名/リポジトリ名.git
方法3: GitHub CLIの使用
GitHub公式のCLIツールを使用すると、認証プロセスが簡素化されます。
# GitHub CLIのインストール(Homebrewを使用)
brew install gh
# 認証
gh auth login
# Gitの設定を自動更新
gh auth setup-git
開発環境別の対応方法
JetBrains IDE(IntelliJ, PyCharmなど)
Ctrl+Alt+S
(Windows/Linux)またはCmd+,
(macOS)で設定を開く- [Version Control] → [GitHub] を選択
- アカウント追加 → [Log In with Token] を選択
- PATを入力して接続
Android Studio
- [File] → [Settings] → [Version Control] → [GitHub]
- 既存のアカウントを削除
- PATを使用して新しいアカウントを追加
- リポジトリのURLを明示的に設定:bash
git remote set-url origin https://<PAT>@github.com/<user_name>/<repo_name>.git
Sourcetree
- [Tools] → [Options] → [Authentication]
- GitHubアカウントを選択 → [Refresh OAuth Token]
- またはPATを使用して新規アカウントを追加
トラブルシューティング
よくある問題と解決策
リモートが設定されていない場合
error: No such remote 'origin'
が表示される場合は、まずリモートを追加してください:
git remote add origin https://github.com/ユーザー名/リポジトリ名.git
複数のリポジトリを管理する場合
PATの有効期限切れ時にすべてのリポジトリを更新するのは大変です。以下の設定で一元管理できます:
# グローバル設定に追加
git config --global url."https://<PAT>@github.com/ユーザー名/".insteadOf "https://github.com/ユーザー名/"
キャッシュのクリア
認証情報に問題がある場合は、キャッシュをクリアしてみてください:
# 資格情報ヘルパーのキャッシュをクリア
git config --global --unset credential.helper
git config --system --unset credential.helper
# Git設定の確認
git config --list
まとめ
GitHubのパスワード認証サポート終了に伴い、以下のいずれかの方法で対応が必要です:
- パーソナルアクセストークン(PAT)の使用 - 最も一般的な解決策
- SSH認証の使用 - より安全でおすすめの方法
- GitHub CLIの使用 - 公式ツールによるシームレスな認証
どの方法を選択しても、定期的なトークンの更新や鍵の管理など、セキュリティベストプラクティスに従うことが重要です。SSH認証は初期設定こそ必要ですが、長期的には最も便利で安全な方法と言えるでしょう。