github から pull しようとしたらパスワード認証ができなくなっていた

仕事で使う技術的なこと

github からリポジトリのデータを pull しようとしたら、下記のようなメッセージで失敗しました。

git.exe pull --progress -v --no-rebase "origin"

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: Authentication failed for 'https://github.com/xxxxxxxxxxxxxx.git/'

どうやら8/13をもって、パスワード認証が廃止されたとのことです。

このままでは困りますので、対応策を備忘録として残しておきます。

解決方法

解決策としては、現状では以下の3通りがあります。

  • 個人アクセストークンを使用する
  • ssh を使用する(今までもあった)
  • github cli を使用する(今までもあった)

今回は「個人アクセストークンを使用する」方法で解決を図ります。

個人アクセストークンの生成

  1. https://github.com/settings/tokens に行きます
  2. 「Generate new token」をクリックします

  1. アクセストークンの設定をします
    • Note にこのトークンを説明する何かしらの名前を設定します。ここは何でもいいので、私の場合は「パスワードの替わりにpullしたりcreateしたりするもの」的な名前を付けました
    • Expiration に有効期限を設定します。無期限(No expiration)も設定できますが、セキュリティ上良くないので警告が出ます
    • Select scopes で、アクセストークンを使用してできることを選択します。今回の件のように、pull とか push とか clone とかリポジトリに対する基本的なことだけがしたい場合は repo だけにチェック入れればいいみたいです
    • 最後に「Generate token」をクリックします


  1. トークンが表示されるので、それをコピーする
    • このページを離れる(閉じる)と2度と参照できなくなるみたいなので気を付けてください

再度 pull を実行

上記で個人アクセストークンを設定した後、リポジトリに対して pull を実行するとパスワード認証が求められます。
(何かのフラグがたったのか?当方、tortoise git を操作するとパスワード認証の画面が表示されました)

ここで、パスワードの代わりに先ほどのアクセストークンのキーを入力すると、pullが成功しました。

所感

とりあえず困ったことを解決することが一番だったので、あまり詳しく調べてないのでアレですが、感覚としてはただパスワードが今まで使ってたものから自動生成されたものに強制的に置き換えられたような感じです。

確かに、githubのパスワードを直接使用するよりも、権限を限定されたパスワード的なもの(アクセストークンのキー)を使用するほうがセキュリティ上良いのはわかりますが、これだったら ssh に強制したほうがよかったのではないかなぁと思いました。

参考サイト

コメント

タイトルとURLをコピーしました