8月13日(金)を境にgit pushができなくなった。。。13日の金曜日

8月13日(金)を境にgit pushができなくなった。。。13日の金曜日

2021年8月19日
知恵
Pocket

久しぶりに、コマンドラインで、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

いっぱい出てきます。

こちらにたどり着いた方も、おそらくググってきているかと思います。

詳細は、以下のページにかかれています。去年から言われていたことなのですね。。。

8月13日(金)を境にgit pushができなくなった。。。13日の金曜日

Token authentication requirements for Git operations - The GitHub Blog

Beginning August 13th, 2021, we will no …
github.blog

2021年8月13日より、GitHub.comでのGit操作を認証する際に、アカウントのパスワードを受け付けません。

さて、対応していきます。

今までどおり、ユーザ名、トークンでアクセスする場合は、トークンの作成から必要ですが

不要な場合は、いきなり、「毎回パスワード入力するのは面倒なのでキャッシュさせるようにする」からやれば大丈夫そうです。

トークンの作成

1. プロフィールアイコンをクリックして、[Settings]をクリックする

Git Settings

2. 左サイドバーから、[Developer settings]をクリックする

Git Developer settings

3. 左のサイドバーで[Personal access tokens]をクリックする

Git Personal access tokens

4. [Generate new token] をクリックする

Git Generate new token

5. トークンに名前をつける(Noteの部分)

Git Note

6. 有効期限を設定する

7日、30日、60日、90日、カスタム、無期限から選択できます。

Git Token Expiration

7. 権限を設定する

かなり細かく設定できます。さしあたり、リポジトリ(repoをチェック)に対する権限だけセットします。

8月13日(金)を境にgit pushができなくなった。。。13日の金曜日
8月13日(金)を境にgit pushができなくなった。。。13日の金曜日

8. [Generate token]をクリックし生成する

生成したトークンは、ページ遷移しないで忘れずコピーしましょう。遷移してしまうと、再作成しないといけません。

8月13日(金)を境にgit pushができなくなった。。。13日の金曜日

アクセスする

生成したトークンを利用して、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日の金曜日

Authorizeをクリックし

8月13日(金)を境にgit pushができなくなった。。。13日の金曜日

成功すると

8月13日(金)を境にgit pushができなくなった。。。13日の金曜日

それ以降、パスワードを聞かれることがなくなります。

Macの方におすすめ

ノートパソコンの収納

ノートパソコンの収納

ノートパソコンの収納ってどうしていますか。 今まで、平置きにして、3台重ねていま…
zaitakukinmu.com