GitHubでコードを管理していたら、突然「パスワード認証が使えません」というエラーが出て困った経験はありませんか?
実は、GitHubは2021年8月13日からパスワード認証を完全に廃止しました。今後は「アクセストークン」という新しい認証方法を使う必要があります。でも安心してください。この記事を読めば、誰でも簡単にアクセストークンを設定できるようになりますよ。
Gitアクセストークンって何?なぜ必要になったの?

アクセストークン(Personal Access Token、略してPAT)とは、GitHubなどのGitホスティングサービスにアクセスするための「特別なパスワード」のようなものです。
パスワードの何が問題だったの?
従来のパスワード認証には、いくつかのセキュリティ上の問題がありました。
問題1:パスワードは強力すぎる
通常のパスワードは、あなたのアカウント全体にアクセスできてしまいます。つまり、パスワードが漏れたら、すべてのリポジトリ、設定、個人情報が危険にさらされます。
問題2:パスワードは使い回される
多くの人が複数のサービスで同じパスワードを使い回しています。どこか1つのサービスでパスワードが漏れると、GitHubアカウントも危険になるわけです。
問題3:自動化との相性が悪い
CI/CDツールや自動デプロイなど、プログラムから自動的にGitを操作したい場合、パスワードをコードに埋め込むのはセキュリティ上非常に危険でした。
アクセストークンの3つの利点
アクセストークンは、これらの問題を解決するために導入されました。
利点1:必要最小限の権限だけを与えられる
アクセストークンには「スコープ」という概念があります。例えば「リポジトリの読み取りだけ」「特定のリポジトリのみアクセス可能」といった制限をかけられるんです。
利点2:複数作成できて、個別に無効化できる
用途ごとに別々のトークンを作成できます。1つのトークンが漏れても、そのトークンだけを無効化すればOK。パスワードを変更する必要はありません。
利点3:有効期限を設定できる
トークンには有効期限を設定できるので、古くなったトークンが放置されるリスクを減らせます。
つまり、アクセストークンは「期限付きで、用途を限定した、無効化しやすいパスワード」というわけですね。
GitHubでアクセストークンを作成する方法
それでは、実際にGitHubでアクセストークンを作成してみましょう。
手順1:GitHubにログインして設定画面を開く
- GitHubにログインします
- 画面右上のプロフィールアイコンをクリック
- 「Settings(設定)」を選択
手順2:Developer settingsに移動
- 左側のメニューを一番下までスクロール
- 「Developer settings(開発者設定)」をクリック
- 左側のメニューから「Personal access tokens」を選択
手順3:トークンの種類を選ぶ
GitHubには2種類のアクセストークンがあります:
Tokens (classic) – クラシックトークン
従来からあるタイプ。設定が簡単ですが、アクセス範囲が広くなりがちです。
Fine-grained tokens – きめ細かいトークン
新しいタイプ。より細かく権限を設定できますが、すべての機能に対応しているわけではありません。
どっちを選べばいい?
初めての方は「Tokens (classic)」を選ぶのがおすすめです。GitHubも移行期間として両方をサポートしています。
それでは「Tokens (classic)」で進めましょう。
- 「Personal access tokens」→「Tokens (classic)」をクリック
- 「Generate new token」→「Generate new token (classic)」を選択
手順4:トークンの設定を行う
ここが重要なポイントです。慎重に設定しましょう。
Note(メモ)
トークンの用途を分かりやすく記入します。後で見返した時に「これ何に使うんだっけ?」とならないようにしましょう。
例:
- 「個人PCからのgit操作用」
- 「CI/CDツール用」
- 「プロジェクトAの開発用」
Expiration(有効期限)
トークンの有効期限を設定します。選択肢は:
- 7日
- 30日
- 60日
- 90日
- カスタム(自分で期間を指定)
- 無期限(非推奨)
おすすめの期限は?
個人利用なら90日、自動化ツールなら長めに設定してもOKです。ただし、無期限は避けましょう。期限が来たら更新するという習慣をつけることで、セキュリティが向上します。
Select scopes(スコープの選択)
ここでトークンに与える権限を選びます。必要最小限にすることが重要です。
基本的なgit操作(clone、push、pull)だけなら:
- ✅ repo – プライベートリポジトリへのフルアクセス
これだけで十分です。repoにチェックを入れると、その配下の項目も自動的に有効になります。
その他の主なスコープ:
- workflow – GitHub Actionsのワークフローを編集する権限
- write:packages – パッケージのアップロード権限
- read:org – 組織のメンバーシップ情報を読み取る権限
手順5:トークンを生成する
- 画面下部の「Generate token」ボタンをクリック
- パスワードの再入力を求められる場合があります
手順6:トークンをコピーして保存(超重要!)
生成されたトークンが画面に表示されます。例えば:
ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
🚨 超重要な注意点 🚨
このトークンは今この画面でしか表示されません。ページを離れたり、更新したりすると二度と見ることができなくなります。
必ずすぐにコピーして安全な場所に保存してください!
保存先の候補:
- パスワード管理アプリ(1Password、LastPass、Bitwardenなど)
- 社内の安全なパスワード管理システム
- ローカルの暗号化された場所
もし保存し忘れてページを離れてしまったら?その場合は、そのトークンを削除して新しく作り直すしかありません。
アクセストークンを実際に使ってみよう
トークンを作成したら、実際にGit操作で使ってみましょう。
方法1:コマンドラインでの使用(基本)
git cloneやgit pushなどを実行すると、認証情報を求められます。
git clone https://github.com/ユーザー名/リポジトリ名.git
実行すると、こんな感じで入力を求められます:
Username for 'https://github.com': あなたのGitHubユーザー名
Password for 'https://あなたのGitHubユーザー名@github.com':
Usernameには:GitHubのユーザー名を入力
Passwordには:アクセストークンを貼り付け
そうです、「Password」と表示されますが、ここにはパスワードではなく、先ほどコピーしたアクセストークンを入力します。
方法2:URLに直接埋め込む方法
トークンをURLに直接含める方法もあります。
git clone https://トークン@github.com/ユーザー名/リポジトリ名.git
実際の例:
git clone https://ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/yamada/myproject.git
この方法なら認証情報の入力を求められません。
ただし、コマンド履歴にトークンが残ってしまうので、共有PCや記録が残る環境では使わない方が安全です。
方法3:既存のリモートURLを更新する
すでにクローン済みのリポジトリで、リモートURLにトークンを含める場合:
git remote set-url origin https://トークン@github.com/ユーザー名/リポジトリ名.git
実行例:
git remote set-url origin https://ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@github.com/yamada/myproject.git
設定後は、git pushやgit pullで認証情報を求められなくなります。
認証情報を保存して毎回の入力を省略する方法
トークンは長くて覚えられないので、毎回入力するのは大変です。Gitには認証情報を記憶する便利な機能があります。
credential helperとは?
credential helperは、Gitの認証情報を安全に保存してくれる仕組みです。一度認証すれば、次回からは自動的に使ってくれます。
方法1:cacheモード(メモリに一時保存)
認証情報をメモリ上に一時的に保存します。PCを再起動すると消えるので、セキュリティ重視の方におすすめ。
設定コマンド
git config --global credential.helper cache
デフォルトでは15分間保存されます。時間を変更したい場合:
git config --global credential.helper 'cache --timeout=3600'
これで1時間(3600秒)保存されるようになります。
トークンの有効期限に合わせた設定例
トークンの有効期限が30日なら:
- 1日 = 86400秒
- 30日 = 2,592,000秒
git config --global credential.helper 'cache --timeout=2592000'
方法2:storeモード(ディスクに永続保存)
認証情報をファイルに保存します。PCを再起動しても消えません。
設定コマンド
git config --global credential.helper store
実行後、次にgit操作を行った時に入力した認証情報が保存されます。
保存される場所
デフォルトでは ~/.git-credentials ファイルに保存されます。
保存場所を変更したい場合:
git config --global credential.helper 'store --file ~/.my-credentials'
⚠️ 重要な注意点
storeモードは認証情報を平文(暗号化されていない状態)でファイルに保存します。つまり、そのファイルを見れば誰でもトークンが分かってしまいます。
ファイルのパーミッションは自動的に適切に設定されますが、それでも他人がアクセスできる共有PCでは使わない方が安全です。
方法3:Windows Credential Manager(Windows推奨)
Windowsの場合、OS標準の資格情報マネージャーを使う方法が最も安全です。
git config --global credential.helper manager
または
git config --global credential.helper wincred
認証情報はWindowsの資格情報マネージャーに暗号化されて保存されます。
方法4:macOSのKeychain(Mac推奨)
macOSの場合、Keychainを使います。
git config --global credential.helper osxkeychain
認証情報はmacOSのKeychainに暗号化されて保存されます。
設定を確認する方法
現在の設定を確認するには:
git config --global --list
credential.helper の行を探してください。
保存された認証情報を削除する方法
セキュリティ上の理由で保存した認証情報を削除したい場合:
cacheモードの場合
キャッシュをクリア:
git credential-cache exit
storeモードの場合
認証情報ファイルを削除:
rm ~/.git-credentials
Windows/macOSの場合
それぞれの資格情報マネージャーから手動で削除します。
GitLab、Bitbucketでのアクセストークン

GitHubだけでなく、他のGitホスティングサービスでもアクセストークンが必要です。
GitLabのアクセストークン作成方法
GitLabでも同様の仕組みがあります。
手順
- GitLabにログイン
- 右上のプロフィールアイコン→「Preferences」
- 左メニューから「Access Tokens」
- 「Add new token」をクリック
- Token name、Expiration date、Scopeを設定
- 「Create personal access token」をクリック
主なスコープ
- api – API全体へのアクセス
- read_repository – リポジトリの読み取り
- write_repository – リポジトリへの書き込み
使い方はGitHubと同じです。
Bitbucketのアクセストークン
Bitbucketでは「App passwords」という名前で同じ機能を提供しています。
手順
- Bitbucketにログイン
- プロフィールアイコン→「Personal settings」
- 「App passwords」をクリック
- 「Create app password」
- Label、Permissionsを設定
- 「Create」をクリック
アクセストークンのセキュリティベストプラクティス
アクセストークンは強力な認証手段なので、適切に管理することが重要です。
やるべきこと
1. トークンは絶対にコードに含めない
ソースコードにトークンを直接書き込むのは厳禁です。
# ❌ 絶対ダメ!
token = "ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
代わりに、環境変数や設定ファイル(.gitignoreに追加)から読み込みましょう。
# ✅ 良い例
import os
token = os.environ.get('GITHUB_TOKEN')
2. 必要最小限のスコープだけを与える
「全部の権限を与えておけば安心」は間違いです。必要な権限だけを選びましょう。
- リポジトリの読み取りだけなら → repoのreadのみ
- パッケージの公開だけなら → write:packagesのみ
3. 定期的にトークンを更新する
有効期限を設定して、定期的に新しいトークンに更新する習慣をつけましょう。
4. 使わなくなったトークンは削除する
プロジェクトが終わったら、そのトークンは削除してください。
GitHubの場合:
Settings → Developer settings → Personal access tokens → 削除したいトークンの「Delete」
5. トークンごとに用途を明確にする
複数のプロジェクトやツールで同じトークンを使い回さないこと。用途ごとに別々のトークンを作成しましょう。
やってはいけないこと
1. トークンを他人と共有する
チームメンバーとトークンを共有するのは危険です。それぞれが自分のトークンを作成すべきです。
2. 無期限のトークンを作る
無期限トークンは便利ですが、セキュリティリスクが高いです。
3. トークンをメールやチャットで送る
トークンを平文でメールやSlackなどに貼り付けないでください。
4. 公開リポジトリにトークンを含むファイルをpushする
.git-credentialsや環境変数ファイルを誤ってpushしてしまうと、全世界にトークンが公開されてしまいます。
.gitignoreに必ず追加しましょう:
.git-credentials
.env
config.json
5. スクリーンショットにトークンを含める
ブログ記事やドキュメントを書く時、スクリーンショットにトークンが映り込まないよう注意してください。
よくあるトラブルと解決方法
アクセストークンを使っていると、いくつかの問題に遭遇することがあります。
トラブル1:「Authentication failed」エラー
症状
remote: Support for password authentication was removed on August 13, 2021.
fatal: Authentication failed for 'https://github.com/user/repo.git/'
原因
パスワードの代わりにアクセストークンを使っていない可能性があります。
解決方法
- アクセストークンを作成する(まだの場合)
- git操作時、Passwordの入力欄にトークンを入力
- または、credential helperを設定し直す
トラブル2:トークンが期限切れ
症状
以前は動いていたのに、突然認証エラーが出るようになった。
原因
トークンの有効期限が切れています。
解決方法
- GitHubのPersonal access tokens画面を確認
- 期限切れのトークンの横に「Expired」と表示されている
- 「Regenerate token」をクリックして更新
- 新しいトークンをコピーして保存
- ローカルの認証情報を更新
credential helperを使っている場合は、一度認証情報を削除してから、新しいトークンで再認証してください。
トラブル3:トークンを紛失した
症状
トークンをどこに保存したか忘れてしまった。
解決方法
残念ながら、トークンを再表示する方法はありません。以下の手順で対処してください:
- GitHubのPersonal access tokens画面を開く
- 古いトークンを削除
- 新しいトークンを作成
- 今度は確実に保存(パスワード管理アプリ推奨)
トラブル4:権限不足エラー
症状
remote: Permission to user/repo.git denied to user.
fatal: unable to access 'https://github.com/user/repo.git/': The requested URL returned error: 403
原因
トークンに必要なスコープが設定されていません。
解決方法
- GitHubのトークン設定画面を開く
- 該当するトークンをクリック
- 必要なスコープにチェックを入れる
- 「Update token」をクリック
- 新しいトークンが表示されるのでコピー
- ローカルの認証情報を更新
トラブル5:組織のリポジトリにアクセスできない
症状
個人リポジトリは問題ないが、組織のリポジトリで認証エラーが出る。
原因
組織によっては、アクセストークンの使用を制限している場合があります。
解決方法
- 組織の管理者に確認
- 必要に応じて、Fine-grained tokenを使用
- 組織の設定で、あなたのトークンを承認してもらう
まとめ:安全で便利なGit操作のために
アクセストークンは最初は面倒に感じるかもしれませんが、一度設定すれば安全で便利に使えます。
この記事の重要ポイント
- GitHubは2021年8月からパスワード認証を廃止
- アクセストークンは用途を限定した「安全なパスワード」
- トークンは作成時に一度しか表示されないので必ず保存
- 必要最小限のスコープだけを設定しよう
- credential helperで認証情報を保存すれば毎回の入力不要
- 定期的にトークンを更新してセキュリティを保とう
最初の一歩
まだアクセストークンを設定していない方は、今すぐ以下を試してみましょう:
- GitHubでアクセストークンを1つ作成(有効期限90日、repoスコープ)
- パスワード管理アプリに保存
- git操作で使ってみる
- credential helperを設定して保存
これだけで、安全で快適なGit操作ができるようになります。
セキュリティと利便性を両立させて、楽しいコーディングライフを送りましょう!

コメント