チーム開発に初めて参加した時のことです。先輩から「このリポジトリを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 API | REST API / GraphQL APIの認証 |
| CI/CD連携 | GitHub Actions, Jenkins等からのリポジトリアクセス |
| ツール連携 | Cursor, VS Code拡張, Homebrew等 |
classic と fine-grained の違い#
現在GitHubでは2種類のPATが提供されています。どちらを選ぶべきかを明確にしておきましょう。
| 比較項目 | classic | fine-grained |
|---|---|---|
| 権限の粒度 | アカウント全体に適用 | リポジトリ単位で設定可能 |
| 対応ツール | ほぼすべてのツールで利用可 | 一部ツールで非対応の場合あり |
| 有効期限 | 無期限も設定可(非推奨) | 必ず有効期限の設定が必要 |
| Organization対応 | 制限なし | Organization管理者の承認が必要な場合あり |
| セキュリティ | やや弱い(全リポジトリにアクセス可能) | 強い(最小権限の原則を適用しやすい) |
| 推奨シーン | 個人開発、既存ツール連携 | チーム開発、本番環境 |
筆者の使い分け:個人開発やローカルでのGit操作には classic、本番環境のCI/CDパイプラインには fine-grained を使用しています。本記事ではclassicの手順を解説します。
Personal Access Token(classic)の取得手順#
ステップ1:設定画面を開く#
- GitHubにログイン
- 右上のプロフィールアイコンをクリック
- Settings を選択

ステップ2:トークン作成画面に移動#
- 左メニュー最下部の Developer settings をクリック
- Personal access tokens → Tokens (classic) を選択
- Generate new token → Generate new token (classic) をクリック
ステップ3:トークンの設定#

以下の3項目を設定します。
| 設定項目 | 推奨値 | 補足 |
|---|---|---|
| Note | 用途がわかる名前(例: macbook-dev-2026) | 複数トークンを管理する際に区別するため |
| Expiration | 90 days | セキュリティと利便性のバランスが良い |
| Scope | repo(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. トークンを無効化する(最優先)#
- GitHub Settings → Developer settings → Personal access tokens → Tokens (classic)
- 該当トークンの 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環境では便利です。










