Skip to content

GitHub 認証エラー「Support for password authentication was removed」の解決方法

問題の概要

2021年8月13日以降、GitHubはパスワード認証のサポートを終了しました。この変更により、従来のユーザー名とパスワードを使用したGit操作(git pushgit pullgit 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の生成手順

  1. GitHubにログイン後、[Settings] → [Developer settings] → [Personal access tokens] → [Tokens (classic)] に移動
  2. [Generate new token] をクリック
  3. 必要な権限(スコープ)を選択(通常は repo で十分)
  4. 有効期限を設定(セキュリティ上、定期的な更新が推奨されます)
  5. [Generate token] をクリックし、表示されたトークンを安全な場所に保存

重要

トークンは生成時に一度しか表示されないため、必ずコピーして安全な場所に保存してください。紛失した場合は再生成が必要です。

各OSでのPAT設定方法

bash
# 資格情報マネージャーを開く
# 「Windows Credentials」→「git:https://github.com」を編集
# パスワード欄にPATを入力
# または新規追加:「Generic Credential」で以下を設定
# インターネットアドレス: git:https://github.com
# ユーザー名: GitHubユーザー名
# パスワード: PAT
bash
# キーチェーンアクセスを開く
# 「github.com」を検索
# 該当エントリをダブルクリックし「パスワードを表示」
# パスワード欄にPATを入力して保存
# エントリがない場合は新規作成:
# キーチェーン項目名: https://github.com
# アカウント名: https://github.com
# パスワード: PAT
bash
# 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鍵の設定手順

  1. SSH鍵の生成(既にある場合は不要):

    bash
    ssh-keygen -t ed25519 -C "your_email@example.com"
  2. SSHエージェントの起動と鍵の追加:

    bash
    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_ed25519
  3. 公開鍵をGitHubに登録:

    • GitHubの[Settings] → [SSH and GPG keys] → [New SSH key]
    • 公開鍵(~/.ssh/id_ed25519.pubの中身)を貼り付け
  4. リポジトリのURLをSSH形式に変更:

    bash
    git remote set-url origin git@github.com:ユーザー名/リポジトリ名.git

方法3: GitHub CLIの使用

GitHub公式のCLIツールを使用すると、認証プロセスが簡素化されます。

bash
# GitHub CLIのインストール(Homebrewを使用)
brew install gh

# 認証
gh auth login

# Gitの設定を自動更新
gh auth setup-git

開発環境別の対応方法

JetBrains IDE(IntelliJ, PyCharmなど)

  1. Ctrl+Alt+S(Windows/Linux)または Cmd+,(macOS)で設定を開く
  2. [Version Control] → [GitHub] を選択
  3. アカウント追加 → [Log In with Token] を選択
  4. PATを入力して接続

Android Studio

  1. [File] → [Settings] → [Version Control] → [GitHub]
  2. 既存のアカウントを削除
  3. PATを使用して新しいアカウントを追加
  4. リポジトリのURLを明示的に設定:
    bash
    git remote set-url origin https://<PAT>@github.com/<user_name>/<repo_name>.git

Sourcetree

  1. [Tools] → [Options] → [Authentication]
  2. GitHubアカウントを選択 → [Refresh OAuth Token]
  3. またはPATを使用して新規アカウントを追加

トラブルシューティング

よくある問題と解決策

リモートが設定されていない場合

error: No such remote 'origin' が表示される場合は、まずリモートを追加してください:

bash
git remote add origin https://github.com/ユーザー名/リポジトリ名.git

複数のリポジトリを管理する場合

PATの有効期限切れ時にすべてのリポジトリを更新するのは大変です。以下の設定で一元管理できます:

bash
# グローバル設定に追加
git config --global url."https://<PAT>@github.com/ユーザー名/".insteadOf "https://github.com/ユーザー名/"

キャッシュのクリア

認証情報に問題がある場合は、キャッシュをクリアしてみてください:

bash
# 資格情報ヘルパーのキャッシュをクリア
git config --global --unset credential.helper
git config --system --unset credential.helper

# Git設定の確認
git config --list

まとめ

GitHubのパスワード認証サポート終了に伴い、以下のいずれかの方法で対応が必要です:

  1. パーソナルアクセストークン(PAT)の使用 - 最も一般的な解決策
  2. SSH認証の使用 - より安全でおすすめの方法
  3. GitHub CLIの使用 - 公式ツールによるシームレスな認証

どの方法を選択しても、定期的なトークンの更新や鍵の管理など、セキュリティベストプラクティスに従うことが重要です。SSH認証は初期設定こそ必要ですが、長期的には最も便利で安全な方法と言えるでしょう。