GitHub アクセストークン

GitHub 個人用アクセス トークンの作成

個人用アクセス トークンの作成 - GitHub Docs

トークンを作成

  • 有効期限を 30 日(デフォルト値)に設定 → トークン作成した
  • スコープ(権限)→ repo のみチェック

確認

  • プライベートリポジトリからクローンしてみたが、これまで通り普通にクローンできてしまう

ユーザ名とパスワードの入力を求められない場合、資格情報がコンピュータにキャッシュされている可能性があります。 キーチェーンの資格情報を更新して、古いパスワードをトークンに置き換えることができます。

  1. (Mac) キーチェーンアクセス.app
  2. github.com の "インターネット パスワード" 削除
  3. 以下のコマンドでキーチェーンエントリを消去
$ git credential-osxkeychain erase
host=github.com
protocol=https
  • もう一度クローンしたところ、Username, Password を聞かれる
    • Password に取得したトークンを記載 → クローンが実行された
% gcl https://github.com/htksn-git/hello.git hello
Cloning into 'hello'...
Username for 'https://github.com': htksn-git
Password for 'https://htksn-git@github.com': 
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 9 (delta 0), reused 9 (delta 0), pack-reused 0
Receiving objects: 100% (9/9), done.

念の為もう一度確認

  1. GitHub 上から先ほど作成したトークンを削除
  2. 適当なリモートリポジトリを作成
  3. ローカルリモートリポジトリから適当なファイルをプッシュ
  4. エラーになる
(略)
% git push
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/htksn-git/test_token.git/'

先ほどと同様に下記の手順を踏んだところ、「ユーザー名・パスワード(=アクセストークン)」を入力すれば、通常どおりプッシュできた

  1. (Mac) キーチェーンアクセス.app
  2. github.com の "インターネット パスワード" 削除
  3. 以下のコマンドでキーチェーンエントリを消去
% git credential-osxkeychain erase
host=github.com
protocol=https

% git push
Username for 'https://github.com': htksn-git
Password for 'https://htksn-git@github.com': 
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 229 bytes | 229.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/htksn-git/test_token.git
   939e8c1..723b3d3  main -> main