Git の個人用アクセストークンを設定する方法

GitGitBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このチュートリアルでは、Git の個人用アクセストークンの設定と構成のプロセスを案内します。これらのトークンの生成、保護、管理方法を学び、Git エコシステムにおけるその重要性を理解します。このガイドの最後まで進めると、安全な Git 操作のために個人用アクセストークンを効果的に使用する方法をしっかりと理解できるようになります。

gh auth login

この実験(Lab)では学習にインターネット接続が必要です。そのため、Pro ユーザーのみが仮想マシン(VM)を起動できます。アカウントを Pro にアップグレードする


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git(("Git")) -.-> git/GitHubIntegrationToolsGroup(["GitHub Integration Tools"]) git/SetupandConfigGroup -.-> git/config("Set Configurations") git/SetupandConfigGroup -.-> git/git("Show Version") git/GitHubIntegrationToolsGroup -.-> git/cli_config("Configure CLI") subgraph Lab Skills git/config -.-> lab-393036{{"Git の個人用アクセストークンを設定する方法"}} git/git -.-> lab-393036{{"Git の個人用アクセストークンを設定する方法"}} git/cli_config -.-> lab-393036{{"Git の個人用アクセストークンを設定する方法"}} end

Git の個人用アクセストークンの理解

Git は、開発者がプロジェクトで協力し、変更を追跡し、コードリポジトリを管理できるようにする、広く使用されている分散型バージョン管理システムです。Git を効果的に使用する上で重要な点は、リモートリポジトリとのやり取り時の安全な認証です。

個人用アクセストークンとは何ですか?

個人用アクセストークン(Personal Access Tokens, PATs)は、ユーザー名とパスワードを使用せずに Git リポジトリに安全にアクセスできるようにする認証資格情報です。パスワードと同様に機能しますが、いくつかの利点があります。

  1. セキュリティの強化:PAT は、メインアカウントのパスワードを変更することなく取り消したり更新したりできます。
  2. 細かい権限設定:特定のスコープを割り当てることで、トークンが実行できるアクションを制限できます。
  3. 自動化サポート:PAT を使用すると、スクリプト、CI/CD パイプライン、その他のツールによるプログラム的なアクセスが可能になります。
  4. 多要素認証(MFA)との互換性:PAT は、MFA が有効になっているアカウントでも問題なく動作します。

なぜ個人用アクセストークンを使用するのですか?

GitHub、GitLab、Bitbucket などの多くの Git ホスティングプラットフォームでは、Git 操作におけるパスワードベースの認証を段階的に廃止しています。この移行は主にセキュリティ上の懸念から行われています。個人用アクセストークンは、長期間有効な広範なアクセス権を持つ資格情報に関連するリスクを軽減する、より安全な代替手段を提供します。

パスワードの代わりに個人用アクセストークンを使用すると、以下のことができます。

  • トークンの機能を必要なものに限定できます。
  • 異なる目的のために複数のトークンを作成できます。
  • 他のトークンに影響を与えることなく、個々のトークンを取り消すことができます。
  • アクセスと使用状況の監査証跡をより適切に管理できます。

次の手順では、個人用アクセストークンを作成し、Git が認証にそれを使用するように設定します。

GitHub で個人用アクセストークンを生成する

このステップでは、GitHub で個人用アクセストークンを生成します。GitLab や Bitbucket などの他の Git プラットフォームでも同様のプロセスですが、ユーザーインターフェイスに若干の違いがあります。

GitHub でトークンを作成する

個人用アクセストークンを生成するには、以下の手順に従ってください。

  1. ターミナルを開き、GitHub CLI ツールをインストールします。このツールは GitHub とのやり取りを便利にするものです。

    sudo apt-get update
    sudo apt-get install -y gh
  2. 以下のコマンドを実行して GitHub で認証します。

    gh auth login
gh auth login

インタラクティブなプロンプトに従ってください。

  • アカウントについて尋ねられたら、「GitHub.com」を選択します。
  • 好みのプロトコルとして「HTTPS」を選択します。
  • GitHub の資格情報で認証することを確認します。
  • 認証方法を尋ねられたら、「Web ブラウザでログイン」を選択します。

ワンタイムコードが表示されます。GitHub がブラウザで開くか、URL にアクセスしてこのコードを入力するように求められます。

  1. 認証に成功した後、新しい個人用アクセストークンを生成します。

    gh auth token

    このコマンドで現在の認証トークンが表示されます。このトークンをコピーし、安全な場所に保存してください。次のステップで必要になります。

    特定のスコープで直接トークンを作成したい場合は、以下のコマンドを使用できます。

    gh auth refresh -s repo,read:org
    gh auth token

    これにより、リポジトリと組織の読み取りアクセス権を持つトークンが作成されます。

  2. あるいは、GitHub のウェブサイトから直接トークンを生成することもできます。

gh auth login
  • https://github.comにアクセスします。
  • 右上のプロフィール画像をクリックします。
  • 「Settings」を選択します。
  • 下にスクロールし、左側のサイドバーで「Developer settings」をクリックします。
  • 「Personal access tokens」をクリックし、次に「Tokens (classic)」をクリックします。
  • 「Generate new token」をクリックし、「Generate new token (classic)」を選択します。
  • トークンに「Git CLI access」のような説明的な名前を付けます。
  • 適切なスコープを選択します(最低でも、リポジトリアクセスのために「repo」を選択します)。
  • 「Generate token」をクリックします。
  • 生成されたトークンをコピーし、安全に保存します。

GitHub はトークンを一度しか表示しないため、トークンを安全な場所に保管することを忘れないでください。トークンを紛失した場合は、新しいトークンを生成する必要があります。

Git を個人用アクセストークンで認証するように設定する

個人用アクセストークンを生成したので、次は Git がリモートリポジトリとのやり取り時にこのトークンを認証に使用するように設定する必要があります。これを実現する方法はいくつかあります。

方法 1: Git Credential Helper を使用する

Git Credential Helper を使用すると、Git が資格情報を記憶することができるため、毎回入力する必要がなくなります。

  1. ターミナルを開き、プロジェクトディレクトリに移動します。

    cd ~/project
  2. Git が資格情報を保存するために Credential Helper を使用するように設定します。

    git config --global credential.helper store

    注意:これにより、資格情報が暗号化されずにディスクに保存されます。より安全なオプションとして、資格情報を一時的にメモリに保存する cache helper を使用することもできます。

    git config --global credential.helper 'cache --timeout=3600'

    これにより、資格情報が 1 時間(3600 秒)メモリに保存されます。

  3. 設定をテストするために、サンプルの Git リポジトリを作成します。

    mkdir -p ~/project/test-repo
    cd ~/project/test-repo
    git init
  4. リモートリポジトリを追加します(実際の GitHub ユーザー名に置き換える必要があります)。

    git remote add origin https://github.com/yourusername/test-repo.git
  5. 次に Git が認証を要求するとき(例えば、push または pull するとき)、資格情報の入力を求められます。GitHub ユーザー名を入力し、パスワードとして個人用アクセストークンを使用してください。

方法 2: URL ベースの認証を使用する

もう 1 つの方法は、トークンを直接リポジトリ URL に埋め込むことです。

  1. プロジェクトディレクトリで、トークンを含むリモートリポジトリ URL を設定します。

    git remote set-url origin https://[email protected]/yourusername/test-repo.git

    YOUR_TOKENを実際の個人用アクセストークンに、yourusernameを GitHub ユーザー名に置き換えてください。

  2. 設定を検証するためにテストファイルを作成します。

    echo "## Test Repository" > README.md
    git add README.md
    git commit -m "Initial commit"

方法 3: Git 設定ファイルを使用する

Git 設定ファイルを直接編集することもできます。

  1. リポジトリ内の.git/configファイルを作成または編集します。

    nano ~/project/test-repo/.git/config
  2. オリジンリモートの URL を更新して、トークンを含めます。

    [remote "origin"]
        url = https://[email protected]/yourusername/test-repo.git
        fetch = +refs/heads/*:refs/remotes/origin/*

    YOUR_TOKENを実際の個人用アクセストークンに、yourusernameを GitHub ユーザー名に置き換えてください。

  3. Ctrl+O を押してファイルを保存し、Enter を押し、Ctrl+X で終了します。

セキュリティ上の理由から、ほとんどのユーザーには Credential Helper を使用する方法(方法 1)が一般的に推奨されます。これは、トークンを直接設定ファイルに保存することを避けることができるためです。

個人用アクセストークンのテスト

Git を個人用アクセストークンで認証するように設定した後、認証が正しく機能することを確認することが重要です。このステップでは、一般的な Git 操作を行ってトークンをテストします。

GitHub でテストリポジトリを作成する

まず、GitHub CLI を使用して GitHub 上にテストリポジトリを作成しましょう。

  1. GitHub 上に新しいリポジトリを作成します。

    cd ~/project
    gh repo create test-pat-repo --private --clone
    cd test-pat-repo

    このコマンドは、「test-pat-repo」という名前の新しいプライベートリポジトリを作成し、それをローカルマシンにクローンします。

基本的な Git 操作のテスト

次に、いくつかの基本的な Git 操作を行って、個人用アクセストークンが正しく機能していることを確認しましょう。

  1. シンプルな README ファイルを作成します。

    echo "## Test PAT Repository" > README.md
    echo "This repository is used to test Personal Access Token configuration." >> README.md
  2. ファイルを追加してコミットします。

    git add README.md
    git commit -m "Add README file"
  3. 変更を GitHub にプッシュします。

    git push -u origin main

    個人用アクセストークンが正しく設定されていれば、パスワードの入力を求められることなくプッシュが成功するはずです。Credential Helper を使用しており、これが初回のプッシュである場合、ユーザー名とトークンの入力を求められることがありますが、それ以降は将来の使用のために保存されます。

  4. 保存された資格情報を検証するために、もう一度変更を加えます。

    echo "### Additional Information" >> README.md
    echo "This section contains additional information about the repository." >> README.md
    git add README.md
    git commit -m "Update README with additional information"
    git push

    2 回目のプッシュは、認証のプロンプトなしで進むはずです。これにより、トークンが正しく使用されていることが確認されます。

リポジトリアクセスの検証

トークンが正しく機能していることをさらに確認するために、リポジトリを一覧表示することができます。

gh repo list --limit 5

このコマンドは、GitHub のリポジトリのリストを表示し、その中には先ほど作成したテストリポジトリも含まれます。このコマンドが正常に実行されれば、個人用アクセストークンがリポジトリアクセスに必要な権限を持っていることが確認されます。

これらのテスト中に問題が発生した場合は、トークンの設定を再確認し、トークンが実行しようとしている操作に必要なスコープ(権限)を持っていることを確認してください。

個人用アクセストークンの管理と更新

個人用アクセストークンは、パスワードと同じレベルの注意を払って取り扱う必要があります。この最後のステップでは、セキュリティを維持するためのトークンの管理と更新のベストプラクティスについて説明します。

個人用アクセストークンの一覧表示

GitHub 上の既存の個人用アクセストークンを表示するには、以下の方法があります。

  1. GitHub CLI を使用する場合:

    gh auth status

    このコマンドは、現在の認証状態に関する情報を表示し、使用中のトークンも含まれます。

  2. あるいは、GitHub のウェブインターフェイスを通じてすべてのトークンを表示することもできます。

    • GitHub.com にアクセスしてログインします。
    • 右上のプロフィール画像をクリックします。
    • 「Settings」を選択します。
    • 「Developer settings」>「Personal access tokens」>「Tokens (classic)」に移動します。

トークンセキュリティのベストプラクティス

個人用アクセストークンのセキュリティを維持するには、以下のベストプラクティスに従ってください。

  1. トークンのスコープを制限する:トークンの目的に必要な最小限の権限のみを付与します。

  2. 説明的な名前を使用する:トークンには、その目的と使用方法を示す意味のある名前を付けます。

  3. 有効期限を設定する:重要でないトークンには、定期的な更新を強制するために有効期限を設定します。

    GitHub CLI を使用して有効期限付きのトークンを作成するには:

    gh auth refresh -s repo,read:org --expiry 30d
    gh auth token

    これにより、30 日後に期限切れになるトークンが作成されます。

  4. 定期的にトークンを監査する:定期的にトークンを確認し、不要になったトークンは取り消します。

  5. トークンを安全に保管する:トークンを公開リポジトリ、暗号化されていないファイルに保存したり、他人と共有したりしないでください。

  6. 環境変数を使用する:スクリプトやアプリケーションでトークンを使用する場合は、ハードコーディングするのではなく、環境変数として保存します。

    例えば:

    export GITHUB_TOKEN=your_token_here

個人用アクセストークンの取り消し

トークンが漏洩した疑いがある場合、または不要になった場合は、すぐに取り消してください。

  1. GitHub CLI を使用する場合(TOKEN を実際のトークンに置き換えてください):

    gh auth logout

    これによりログアウトし、現在のトークンが無効になります。

  2. GitHub のウェブインターフェイスを通じる場合:

    • GitHub.com にアクセスしてログインします。
    • 「Settings」>「Developer settings」>「Personal access tokens」>「Tokens (classic)」に移動します。
    • 取り消したいトークンを見つけます。
    • 「Delete」をクリックし、アクションを確認します。

トークンの更新

定期的なトークンの更新は、良好なセキュリティプラクティスです。トークンを更新する方法は以下の通りです。

  1. 古いトークンと同じ権限を持つ新しいトークンを生成します。
  2. アプリケーションと設定を更新して、新しいトークンを使用するようにします。
  3. 新しいトークンですべてが正常に動作することをテストします。
  4. 古いトークンを取り消します。

自動化されたプロセスでは、環境変数またはセキュアボールトを使用してトークンを保存することを検討してください。これにより、更新が容易になります。

## Generate a new token
gh auth refresh -s repo,read:org
NEW_TOKEN=$(gh auth token)

## Update your Git remote URL with the new token
git remote set-url origin https://${NEW_TOKEN}@github.com/yourusername/your-repo.git

## Verify it works
git fetch

## Revoke the old token through GitHub website
echo "Remember to revoke your old token in GitHub settings"

これらのベストプラクティスに従うことで、Git リポジトリへの安全なアクセスを維持しながら、不正アクセスのリスクを最小限に抑えることができます。

まとめ

このチュートリアルでは、Git の個人用アクセストークンを効果的に使用する方法を学びました。以下に、達成したことをまとめます。

  1. Git 認証に個人用アクセストークンを使用することの重要性と利点を理解しました。
  2. CLI とウェブインターフェイスの両方を使用して、GitHub で個人用アクセストークンを生成しました。
  3. Git を設定して、リポジトリ操作に個人用アクセストークンを使用するようにしました。
  4. 基本的な Git 操作を行って、トークンの設定をテストしました。
  5. トークンの管理、セキュリティ保護、および更新のベストプラクティスを学びました。

パスワードの代わりに個人用アクセストークンを使用することで、Git ワークフローのセキュリティを強化しました。特定の権限を持つトークンを作成し、有効期限を制限し、必要に応じて取り消すことができますが、メインアカウントの資格情報には影響しません。

以下の重要なポイントを覚えておいてください。

  • トークンには常に必要最小限の権限を使用してください。
  • トークンを安全に保管し、決して共有しないでください。
  • 特に機密性の高いリポジトリについては、定期的にトークンを更新してください。
  • 使用していないトークンや漏洩した疑いのあるトークンは、すぐに取り消してください。

これらのプラクティスを実施することで、セキュリティリスクを最小限に抑えながら、Git リポジトリへの安全なアクセスを維持することができます。