GithubでPersonal access tokens(アクセストークン)を設定してみた

2023.11.29

こんにちは、つくぼし(tsukuboshi0755)です!

GitHubのリモートリポジトリをgit cloneやgit pullで利用する際に、Personal access tokensの設定が度々必要になるのですが、期間が空くと一覧の作業手順を忘れてしまいがちです。

そこで今回は備忘録的な意味で、Personal access tokensの発行・認証・保存の手順を記しておきたいと思います!

Personal access tokensとは?

Personal access tokensとは、GitHubのリモートリポジトリにHTTP接続する際に、ユーザ名と合わせて必要となる情報です。

Personal access tokensの公式ドキュメントは以下の通りです。

なお2023年11月時点ではベータ版ですが、Fine-grained personal access tokensというよりセキュリティが強固になったアクセス方法も存在するので、気になる方はこちらもご参照ください。

以下では、Personal access tokens(以下トークン)の発行、認証、保存の手順をそれぞれを紹介します。

なお初めてアクセスする場合はもちろん、トークンの有効期限が切れた場合も、一から発行が必要になります。

トークンの発行

まずは以下より、GitHubにアクセスし、自身のGitHubアカウントにログインしてください。

GitHubアカウントにログインしましたら、GitHubホームページより右上の自身のGitHubアイコンをクリックしてください。

すると以下のような右ペインが表示されるので、Settingsをクリックし、設定ページに移動してください。

設定ページの左ペインより、Developers Settingsをクリックし、開発者設定ページに移動してください。

開発者設定ページより、Tokens (classic)をクリックします。

Personal access tokensページが表示されるので、Generate new tokenボタンをクリックし、トークンの発行を開始します。

Generate new token (classic)をクリックします。

New personal access tokenページが表示されたら、必要項目を入力します。

Noteにはトークンの使用用途を入力しましょう。

Expirationにはトークンの有効期限を設定してください。デフォルトは30日ですが、短い場合は期間を延長する事ができます。

Select scopesではトークンが利用可能なGitHub権限を設定してください。git cloneやgit pullをしたい場合は、repoにチェックを入れればOKです。

権限の内容に問題がない事を確認できましたら、Generate tokenボタンをクリックしてください。

すると以下のようにトークンが発行され、一度だけ表示されるのでメモしてください。

なお他のページに移動してしまうと表示されなくなってしまうため、もし移動してしまった場合は元のトークンを削除し、新たにトークンを作成し直してください。

トークンによる認証

リモートリポジトリを利用したい環境でgit cloneまたはgit pull等を実施すると、以下の通りUsernamePasswordが求められます。

Usernameにはリポジトリに割り当てられたユーザ名、Passwordには先ほどメモしたトークンを入力します。

$ git pull
Username for 'https://github.com': 
Password for 'https://xxx@github.com':

正常に認証が完了すれば、git cloneまたはgit pullが開始されます。  

なおもし以下のようなメッセージが生じた場合は、GitHubの認証エラーが起きていると考えられるため、トークン設定を再度見直してください。

fatal: Authentication failed for 'https://github.com/xxx/xxx.git/'

トークンの保存

Gitで認証情報を保存できるcredential.helperを使用し、次回以降トークンの入力を省略する事をオススメします。

credential.helperには様々なモードが存在するのですが、今回はOS共通で使用できるcacheモード及びstoreモードを紹介します。

認証情報を保存する場合は、git cloneしたリポジトリ上で、下記いずれかのコマンドを実施してください。

cacheモード

キャッシュメモリに認証情報を保存する方法です。

--cacheオプションで、認証情報の保持時間を指定できます。(デフォルトは900秒)

$ git config --global credential.helper cache --timeout 900

一定時間が経つと認証情報が削除されるためセキュリティが強固な一方で、短時間しか認証情報を保持できません。

storeモード

テキストファイルに認証情報を保存する方法です。

--fileオプションで、テキストファイルの保存先を指定できます。(デフォルトは~/.git-credentials)

$ git config --global credential.helper store --file ~/.git-credentials

認証情報を長時間保存可能な一方で、パスワードが平文のテキストファイルで保存されてしまうため注意が必要です。

なお詳細が気になる方は、以下のcredential.helperの公式ドキュメントも合わせてご確認ください。

最後に

今回は、Personal access tokensの発行・認証・保存の手順を紹介しました。

トークンの有効期限が切れてから対応しようとすると、以前やったはずの設定手順を忘れてしまう方もいらっしゃるのではないでしょうか。

この記事が、そのような方々のお役に立てば幸いです。

以上、つくぼし(tsukuboshi0755)でした!