久しぶりに、コマンドラインで、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]をクリックする
![Git Settings](https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1629293317/8b638854cf2523a12c18d8cdd4ed9bcf/8b638854cf2523a12c18d8cdd4ed9bcf.jpg?_i=AA 412w, https://res.cloudinary.com/dz7ruywxa/images/w_121,h_300,c_scale/f_auto,q_auto/v1629293317/8b638854cf2523a12c18d8cdd4ed9bcf/8b638854cf2523a12c18d8cdd4ed9bcf.jpg?_i=AA 121w)
2. 左サイドバーから、[Developer settings]をクリックする
![Git Developer settings](https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1629299237/7c6732cf5a567e732206d25e5dade8bd/7c6732cf5a567e732206d25e5dade8bd.jpg?_i=AA 532w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_224,c_scale/f_auto,q_auto/v1629299237/7c6732cf5a567e732206d25e5dade8bd/7c6732cf5a567e732206d25e5dade8bd.jpg?_i=AA 300w)
3. 左のサイドバーで[Personal access tokens]をクリックする
![Git Personal access tokens](https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1629299233/d72614cb957e4a93050ca7bac09f48de/d72614cb957e4a93050ca7bac09f48de.jpg?_i=AA 802w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_171,c_scale/f_auto,q_auto/v1629299233/d72614cb957e4a93050ca7bac09f48de/d72614cb957e4a93050ca7bac09f48de.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_439,c_scale/f_auto,q_auto/v1629299233/d72614cb957e4a93050ca7bac09f48de/d72614cb957e4a93050ca7bac09f48de.jpg?_i=AA 768w)
4. [Generate new token] をクリックする
![Git Generate new token](https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1629299229/c400e031376131be54a0fc40471a0c28/c400e031376131be54a0fc40471a0c28.jpg?_i=AA 1000w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_67,c_scale/f_auto,q_auto/v1629299229/c400e031376131be54a0fc40471a0c28/c400e031376131be54a0fc40471a0c28.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_172,c_scale/f_auto,q_auto/v1629299229/c400e031376131be54a0fc40471a0c28/c400e031376131be54a0fc40471a0c28.jpg?_i=AA 768w)
5. トークンに名前をつける(Noteの部分)
![Git Note](https://res.cloudinary.com/dz7ruywxa/images/w_1024,h_289,c_scale/f_auto,q_auto/v1629299225/9d46311c4b235b24f06c94912686cd5a/9d46311c4b235b24f06c94912686cd5a.jpg?_i=AA 1024w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_85,c_scale/f_auto,q_auto/v1629299225/9d46311c4b235b24f06c94912686cd5a/9d46311c4b235b24f06c94912686cd5a.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_217,c_scale/f_auto,q_auto/v1629299225/9d46311c4b235b24f06c94912686cd5a/9d46311c4b235b24f06c94912686cd5a.jpg?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1629299225/9d46311c4b235b24f06c94912686cd5a/9d46311c4b235b24f06c94912686cd5a.jpg?_i=AA 1504w)
6. 有効期限を設定する
7日、30日、60日、90日、カスタム、無期限から選択できます。
![Git Token Expiration](https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1629299222/53b43b439d2f2e41ace7a3127f0f6a84/53b43b439d2f2e41ace7a3127f0f6a84.jpg?_i=AA 818w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_59,c_scale/f_auto,q_auto/v1629299222/53b43b439d2f2e41ace7a3127f0f6a84/53b43b439d2f2e41ace7a3127f0f6a84.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_152,c_scale/f_auto,q_auto/v1629299222/53b43b439d2f2e41ace7a3127f0f6a84/53b43b439d2f2e41ace7a3127f0f6a84.jpg?_i=AA 768w)
7. 権限を設定する
かなり細かく設定できます。さしあたり、リポジトリ(repoをチェック)に対する権限だけセットします。
![8月13日(金)を境にgit pushができなくなった。。。13日の金曜日](https://res.cloudinary.com/dz7ruywxa/images/w_834,h_1024,c_scale/f_auto,q_auto/v1629299217/7185ea9422208fee2ac960e729e89b47/7185ea9422208fee2ac960e729e89b47.jpg?_i=AA 834w, https://res.cloudinary.com/dz7ruywxa/images/w_244,h_300,c_scale/f_auto,q_auto/v1629299217/7185ea9422208fee2ac960e729e89b47/7185ea9422208fee2ac960e729e89b47.jpg?_i=AA 244w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_943,c_scale/f_auto,q_auto/v1629299217/7185ea9422208fee2ac960e729e89b47/7185ea9422208fee2ac960e729e89b47.jpg?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1629299217/7185ea9422208fee2ac960e729e89b47/7185ea9422208fee2ac960e729e89b47.jpg?_i=AA 1134w)
8. [Generate token]をクリックし生成する
生成したトークンは、ページ遷移しないで忘れずコピーしましょう。遷移してしまうと、再作成しないといけません。
![8月13日(金)を境にgit pushができなくなった。。。13日の金曜日](https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1629299209/5d04851ce911aef7fbaeb16b135be6fb/5d04851ce911aef7fbaeb16b135be6fb.jpg?_i=AA 1000w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_112,c_scale/f_auto,q_auto/v1629299209/5d04851ce911aef7fbaeb16b135be6fb/5d04851ce911aef7fbaeb16b135be6fb.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_286,c_scale/f_auto,q_auto/v1629299209/5d04851ce911aef7fbaeb16b135be6fb/5d04851ce911aef7fbaeb16b135be6fb.jpg?_i=AA 768w)
アクセスする
生成したトークンを利用して、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]をクリックします。
![8月13日(金)を境にgit pushができなくなった。。。13日の金曜日](https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1629299205/b23cf7e66be4078ca1211ba48ac791b3/b23cf7e66be4078ca1211ba48ac791b3.jpg?_i=AA 854w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_228,c_scale/f_auto,q_auto/v1629299205/b23cf7e66be4078ca1211ba48ac791b3/b23cf7e66be4078ca1211ba48ac791b3.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_585,c_scale/f_auto,q_auto/v1629299205/b23cf7e66be4078ca1211ba48ac791b3/b23cf7e66be4078ca1211ba48ac791b3.jpg?_i=AA 768w)
Authorizeをクリックし
![8月13日(金)を境にgit pushができなくなった。。。13日の金曜日](https://res.cloudinary.com/dz7ruywxa/images/w_709,h_1024,c_scale/f_auto,q_auto/v1629299201/893ea2aab79dadc144e2cf5303cefa86/893ea2aab79dadc144e2cf5303cefa86.jpg?_i=AA 709w, https://res.cloudinary.com/dz7ruywxa/images/w_208,h_300,c_scale/f_auto,q_auto/v1629299201/893ea2aab79dadc144e2cf5303cefa86/893ea2aab79dadc144e2cf5303cefa86.jpg?_i=AA 208w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_1110,c_scale/f_auto,q_auto/v1629299201/893ea2aab79dadc144e2cf5303cefa86/893ea2aab79dadc144e2cf5303cefa86.jpg?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1629299201/893ea2aab79dadc144e2cf5303cefa86/893ea2aab79dadc144e2cf5303cefa86.jpg?_i=AA 786w)
成功すると
![8月13日(金)を境にgit pushができなくなった。。。13日の金曜日](https://res.cloudinary.com/dz7ruywxa/images/w_1024,h_445,c_scale/f_auto,q_auto/v1629299196/e01e63982c7d26a0fcc326f63c8c4dc0/e01e63982c7d26a0fcc326f63c8c4dc0.jpg?_i=AA 1024w, https://res.cloudinary.com/dz7ruywxa/images/w_300,h_130,c_scale/f_auto,q_auto/v1629299196/e01e63982c7d26a0fcc326f63c8c4dc0/e01e63982c7d26a0fcc326f63c8c4dc0.jpg?_i=AA 300w, https://res.cloudinary.com/dz7ruywxa/images/w_768,h_334,c_scale/f_auto,q_auto/v1629299196/e01e63982c7d26a0fcc326f63c8c4dc0/e01e63982c7d26a0fcc326f63c8c4dc0.jpg?_i=AA 768w, https://res.cloudinary.com/dz7ruywxa/images/f_auto,q_auto/v1629299196/e01e63982c7d26a0fcc326f63c8c4dc0/e01e63982c7d26a0fcc326f63c8c4dc0.jpg?_i=AA 1168w)
それ以降、パスワードを聞かれることがなくなります。
Macの方におすすめ↓