見慣れないエラー
2021年6月30日。昨日まではちゃんとpushできていたのに、急にpushでエラーが出るようになった。GitHubがダウンしたのかと思ってTwitterを見ても、誰もそんなことは言っていない。
エラーメッセージ
remote: Password authentication is temporarily disabled as part of a brownout. Please use a personal access token instead.
remote: Please see https://github.blog/2020-07-30-token-authentication-requirements-for-api-and-git-operations/ for more information.
fatal: unable to access 'reponame': The requested URL returned error: 403
解決方法
PCに保存されている資格情報を削除して、GitHubのPersonal Access Tokenでログインし直す。
解説
もうパスワードは使えない
まず前提として、GitHubへのpushやpullがパスワードで認証できなくなるということが公式で発表されている(参考)。これは2021年8月13日から実施される。
今回のエラーはこれが原因である。確かに自分はGit pushをパスワードで認証していた。少しフライングだったのは謎だが、もうパスワード認証は受け付けてくれないということだ。ではどのように認証すればいいのかというと、TokenかSSH Keyを使う必要がある。
Tokenの取得方法はこの記事に詳しく説明されている。
Tokenを登録するには
しかし、取得したTokenはどのように登録すればいいのかが探しても見つからなかった。既存のリポジトリで新しくTokenを登録するにはどうしたらいいのか?答えは、PCの資格情報の削除だった。
そもそも、今までgit pushをパスワード認証なしでできていたのは、Windwosであれば資格情報マネージャー、Macであればキーチェーンがパスワードを保存してくれていたからだ。あまりに当然すぎて忘れてしまっていたが、これらに深く感謝してGitHubの認証情報を削除することで、次回以降のpushでは認証を求められることになる。この時に、TokenかSSH keyを選べるので、Tokenを選んで認証すれば成功となる。
まとめ
今までパスワード認証だった人がToken認証にする場合は、資格情報マネージャー/キーチェーンからパスワードを消しましょう。