久しぶりに、コマンドラインで、git pushしようとしたら、以下のエラーが表示されました。
うーむなんだろう。
$ git push origin master
Username for 'https://github.com': xxxxxxx
Password for 'https://xxxxxxx@github.com':
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: unable to access 'https://github.com/tanacho/sample.git/': The requested URL returned error: 403
2021年8月13日に、パスワード認証が廃止されたとのことです。
「Please use a personal access token instead」でとりあえずググります。
personal access token = PAT
いっぱい出てきます。
こちらにたどり着いた方も、おそらくググってきているかと思います。
詳細は、以下のページにかかれています。去年から言われていたことなのですね。。。
2021年8月13日より、GitHub.comでのGit操作を認証する際に、アカウントのパスワードを受け付けません。
さて、対応していきます。
今までどおり、ユーザ名、トークンでアクセスする場合は、トークンの作成から必要ですが
不要な場合は、いきなり、「毎回パスワード入力するのは面倒なのでキャッシュさせるようにする」からやれば大丈夫そうです。
トークンの作成
1. プロフィールアイコンをクリックして、[Settings]をクリックする
2. 左サイドバーから、[Developer settings]をクリックする
3. 左のサイドバーで[Personal access tokens]をクリックする
4. [Generate new token] をクリックする
5. トークンに名前をつける(Noteの部分)
6. 有効期限を設定する
7日、30日、60日、90日、カスタム、無期限から選択できます。
7. 権限を設定する
かなり細かく設定できます。さしあたり、リポジトリ(repoをチェック)に対する権限だけセットします。
8. [Generate token]をクリックし生成する
生成したトークンは、ページ遷移しないで忘れずコピーしましょう。遷移してしまうと、再作成しないといけません。
アクセスする
生成したトークンを利用して、git pushします
エラーが出ずに、pushすることができました。大丈夫そうです。
$ git push origin master
Username for 'https://github.com': xxxxxxx
Password for 'https://xxxxxxx@github.com': ここに、8でコピーしたトークンを設定する
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 293 bytes | 293.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/xxxxxxx/sample.git
5f98bb1..9ee9371 master -> master
今までパスワードを入力せずにアクセスできてた人は、キーチェーンが保持していたからかもしれません。パスワード聞かれずエラーになる場合は、キーチェーンの設定からパスワードを取得したトークンに変更してください。
- キーチェーンアクセスアプリを起動する。
- githubで検索する。
- github.comのインターネットパスワードの行をクリックする。
- パスワードを表示するをチェックして、トークンを設定する。
トークンの有効期限を30日で設定した方は、1ヶ月後に有効期限切れとなるので再発行しましょう。
追記) こんな形のメールがトークンが切れる1週間前に飛んできます。
タイトル: [GitHub] Your personal access token is about to expire
Hi @xxxxxxx,
We noticed your personal access token "トークン名" with repo scope will expire in 7 days.
If this token is still needed, visit https://github.com/settings/tokens/999999999/regenerate to generate an equivalent.
If you run into problems, please contact support by visiting https://github.com/contact
Thanks,
The GitHub Team
毎回パスワード入力するのは面倒なのでキャッシュさせるようにする(GCM Core利用)
以下の手順は、Macの場合です。その他環境は、以下を確認してみてください。
Caching your GitHub credentials in Git
(GCM Core) は、認証情報を安全に保存し、HTTPS で GitHub に接続するもうひとつの方法です。GCM Coreでは、2FA(二要素認証)を含む認証をGCM Coreが代行してくれるので、手動でPAT(personal access token)を作成して保存する必要はありません。
# gitコマンドがない場合、gitコマンドインストール
$ brew install git
# 以下を実行
$ brew tap microsoft/git
$ brew install --cask git-credential-manager-core
上記を実行したあと、git pushを実行します。
すると、以下のポップアップが表示され[Sign in with your browser]をクリックします。
Authorizeをクリックし
成功すると
それ以降、パスワードを聞かれることがなくなります。
Macの方におすすめ↓