久しぶりにGitHubにコードをpushしようとしたら、以下のようなエラーが発生した話。
ローカルのプロジェクトをGitHubに追加しようとして発生したけども、大元の記事はこちら。
既存のローカルプロジェクトを GitHub に移行する時にハマったメモ
どんなエラー?そして何故発生した?
git pushしようとして発生した時のエラー内容は以下の通り。
% git push -u origin main
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/[UserName]/[RepositoryName].git/': The requested URL returned error: 403
- セキュリティーの向上のためにこれまでのパスワード認証を廃止した
- 代わりにPersonal Access Token(PAT)というものを用意したので、それを利用して欲しい
- PATはデータを扱えるスコープ(権限範囲)を絞れたり、利用期限を設定することができる
- 例えば、リードオンリーの権限に制限したPATを発行して、それをビルドマシンなどで利用したりするとか(なはず)
- こうしておけば、万が一PATが漏れても、コードをコミットされたりはしないはず
- できれば2要素認証もよろしくね
ということだと思う。
どうするか?
パスワード認証の廃止について書かれていたページからリンクを貼られていた以下のページを参考にPAT(Personal Access Token)の作成を行ってみた。
Creating a personal access token
PAT完了後には以下の画面がGitHub上で表示されるので、赤色で塗りつぶしているところに表示されるトークンをコピーしておく。
とりあえず上記のPATをパスワードがわりにクライアント側で利用すればOKなはず。
自分はMacのコマンドラインで作業していたのですが、パスワード管理はキーチェーンアクセス.appを利用していました。
なので、キーチェーンアクセス.appが保持しているパスワードをPATに変更する必要があります。
手順的にはキーチェーンアクセス.appを起動し、検索窓で『github』を検索します。
ここで出てきた『github.com』の項目を選択します。
詳細ページでは、『パスワードを表示』のチェックを付け、Macのパスワードを入力する。
その後、表示されたパスワードを削除し、PATに変更して『変更内容を保存』する。
コマンドラインを起動し、適当にGitコマンドを実行してみるとエラーが改善されました。