メインコンテンツへスキップ

GitHub Personal Access Token(classic)の取得から安全な運用まで|実務で学んだトークン管理術

··3097 文字·7 分
目次

チーム開発に初めて参加した時のことです。先輩から「このリポジトリをcloneして」と言われ、git clone を実行したところ、パスワード入力を求められました。GitHubのパスワードを入力しても Authentication failed ——。

調べてみると、2021年8月以降、GitHubはパスワードによるGit操作を完全に廃止しており、代わりに Personal Access Token(PAT) を使う必要があるとのこと。

「トークンって何?どうやって作るの?漏洩したらどうなるの?」

当時の自分と同じ疑問を持つ方に向けて、この記事ではPATの取得方法だけでなく、実務で安全に運用するための管理術まで、実体験をもとにまとめました。


Personal Access Token(PAT)とは
#

Personal Access Token(PAT)は、GitHubが提供する認証用のランダム文字列です。パスワードの代わりにこのトークンを使って、以下の操作を行います。

用途具体例
Git操作git clone, git push, git pull
GitHub APIREST API / GraphQL APIの認証
CI/CD連携GitHub Actions, Jenkins等からのリポジトリアクセス
ツール連携Cursor, VS Code拡張, Homebrew等

classic と fine-grained の違い
#

現在GitHubでは2種類のPATが提供されています。どちらを選ぶべきかを明確にしておきましょう。

比較項目classicfine-grained
権限の粒度アカウント全体に適用リポジトリ単位で設定可能
対応ツールほぼすべてのツールで利用可一部ツールで非対応の場合あり
有効期限無期限も設定可(非推奨)必ず有効期限の設定が必要
Organization対応制限なしOrganization管理者の承認が必要な場合あり
セキュリティやや弱い(全リポジトリにアクセス可能)強い(最小権限の原則を適用しやすい)
推奨シーン個人開発、既存ツール連携チーム開発、本番環境

筆者の使い分け:個人開発やローカルでのGit操作には classic、本番環境のCI/CDパイプラインには fine-grained を使用しています。本記事ではclassicの手順を解説します。


Personal Access Token(classic)の取得手順
#

ステップ1:設定画面を開く
#

  1. GitHubにログイン
  2. 右上のプロフィールアイコンをクリック
  3. Settings を選択
GitHubのSettings画面からDeveloper settingsとPersonal access tokensを開く手順
図:GitHub SettingsからPersonal Access Tokenを作成する画面

ステップ2:トークン作成画面に移動
#

  1. 左メニュー最下部の Developer settings をクリック
  2. Personal access tokensTokens (classic) を選択
  3. Generate new tokenGenerate new token (classic) をクリック

ステップ3:トークンの設定
#

GitHubでPersonal Access Token classicを生成する画面
図:Generate new token (classic) 画面

以下の3項目を設定します。

設定項目推奨値補足
Note用途がわかる名前(例: macbook-dev-2026複数トークンを管理する際に区別するため
Expiration90 daysセキュリティと利便性のバランスが良い
Scoperepo(Git操作の場合)必要最小限の権限のみ付与する

ステップ4:トークンを生成・保存
#

Generate token をクリックすると、ghp_ で始まるトークン文字列が表示されます。

⚠️ このトークンは一度しか表示されません。必ずこの画面でコピーし、安全な場所に保存してください。


Git操作でトークンを使用する方法
#

HTTPS clone時の認証
#

git clone https://github.com/ユーザー名/リポジトリ名.git

認証を求められたら、以下を入力します。

Username: GitHubのユーザー名
Password: 先ほどコピーしたPersonal Access Token

注意: Passwordの欄にはGitHubのパスワードではなく、PATを入力します。

毎回の入力を省略する(Credential保存)
#

macOSの場合、以下のコマンドでキーチェーンにトークンを保存できます。

# macOS(Keychain Access に保存)
git config --global credential.helper osxkeychain

# Windows(Windows Credential Manager に保存)
git config --global credential.helper wincred

# Linux(メモリに一時保存、1時間有効)
git config --global credential.helper 'cache --timeout=3600'

最初の git push 時にトークンを入力すれば、以降は自動的に認証されます。


実務での安全な管理方法
#

方法1:環境変数での管理(CI/CD向け)
#

GitHub ActionsなどのCI/CDでは、トークンを環境変数として設定します。

# .github/workflows/deploy.yml
steps:
  - uses: actions/checkout@v4
    with:
      token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}

リポジトリの Settings → Secrets and variables → Actions からシークレットを登録できます。

方法2:.envファイルでの管理(ローカル開発向け)
#

ローカル開発でAPIアクセスにPATを使う場合は、.env ファイルで管理します。

# .env(※ .gitignoreに必ず追加すること)
GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# .gitignore に追加
.env
.env.local

⚠️ .env ファイルを .gitignore に追加し忘れると、トークンがリポジトリに公開されてしまいます。これは実務で最もよくあるインシデントの一つです。


トークンが漏洩した場合の対処法
#

万が一トークンが公開リポジトリにプッシュされたり、SNSに投稿されてしまった場合は、即座に以下の手順で対処してください。

1. トークンを無効化する(最優先)
#

  1. GitHub SettingsDeveloper settingsPersonal access tokensTokens (classic)
  2. 該当トークンの Delete をクリック

無効化した瞬間から、そのトークンは使用不能になります。

2. 影響範囲を確認する
#

  • 漏洩したトークンの Scope(権限) を確認
  • repo 権限がある場合、リポジトリの不正なcommitがないか確認
  • Audit Log(Settings → Security log)で不審なアクティビティがないかチェック

3. 新しいトークンを再発行する
#

上記の取得手順に従い、新しいトークンを作成します。以前と同じ権限を設定する必要はありません。この機会に最小権限の原則を見直しましょう。

実体験:筆者は過去に、勉強会のライブコーディングで .env ファイルを画面共有してしまい、PATが映り込んだことがあります。幸い気づいてすぐにRevokeしましたが、この経験から「画面共有前にターミナルとエディタの環境変数表示を確認する」習慣がつきました。


トークンが使えない場合のトラブルシューティング
#

Authentication failed エラー
#

原因: トークンの期限切れ、またはScope不足

remote: Support for password authentication was removed on August 13, 2021.
fatal: Authentication failed for 'https://github.com/...'

対処: 新しいトークンを作成し、repo Scopeが設定されていることを確認してください。

403 Forbidden エラー(API利用時)
#

原因: APIに必要なScopeが不足している

対処: 使用するAPIエンドポイントに応じて、適切なScope(例: read:org, admin:repo_hook 等)を追加してください。


まとめ
#

項目ポイント
PATの役割パスワードの代替となる認証トークン
取得手順Settings → Developer settings → Tokens (classic) → Generate
推奨有効期限90日(定期的に更新)
権限設定必要最小限のScopeのみ付与
安全な管理環境変数 or .envファイル(.gitignore必須)
漏洩時の対応即座にDelete → 影響確認 → 再発行

PATは便利な反面、パスワードと同等の機密情報です。「作って終わり」ではなく、安全な保管・定期的な更新・漏洩時の対応手順まで含めて運用することが、エンジニアとしての基本的なセキュリティリテラシーと言えるでしょう。


よくある質問(FAQ)
#

Q. Personal Access Tokenは無料ですか?
#

はい。GitHubアカウントがあれば無料で何個でも作成できます。

Q. classicとfine-grainedの両方を同時に使えますか?
#

はい。用途に応じて使い分けることが推奨されています。例えば、ローカル開発用にclassic、CI/CD用にfine-grainedという運用が可能です。

Q. トークンを忘れた場合、再表示できますか?
#

いいえ。トークンは作成時に一度だけ表示されます。忘れた場合は新しいトークンを作成し、古いトークンを削除してください。

Q. SSH鍵とPATのどちらを使うべきですか?
#

どちらでも構いませんが、SSH鍵のほうがセキュリティ面で優れています(トークン文字列がネットワーク上を流れないため)。一方、PATはHTTPS経由で手軽に使えるため、初学者やCI/CD環境では便利です。


📘 関連資料
#

GitHub公式ドキュメント
著者
ゆーふー
Web開発、インフラ、AI技術に興味があるエンジニアです。日々の学びを記録しています。

関連記事

👤 運営者プロフィール

運営者プロフィール画像

ゆーふー

メガベンチャーで働く現役Webエンジニア(歴約2年)。
フロントエンドからインフラ構築、セキュリティ対策まで、実務で得た「現場のリアルな技術知見」を発信しています。