こんにちは、かんたろうです。
最近使い始めたMacBookでgithubを使ったpushができないという事象に遭いました。

pushをするためにgit pushコマンドを打つと、パスワード入力が求められたので、馬鹿正直にgithubアカウントのパスワードを入力してみると、エラーが出たのです。
今回は「なぜエラーが出たのか?」「どう対応したのか?」について備忘録としてまとめていきたいと思います。
git pushコマンドで認証エラーが発生
パスワードが求められたタイミングで、githubアカウントで使っているパスワードを試しに入力してみました。
すると、ターミナル上で以下のようなメッセージが返ってきました。
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/(ユーザー名)/(レポジトリ名)/'
メッセージ内容について、ChatGPTに日本語での解説をお願いすると、以下のような返事が来ました。

このエラーメッセージは、GitHubが2021年8月13日にパスワード認証のサポートを終了したため、git pushコマンドで認証エラーが発生していることを示しています。

ええ、パスワード認証のサポートを終了したのに、パスワード入力が求められたの?

git pushコマンドで認証エラーが発生、、、
認証エラーを解決させねばならぬということか。
パーソナルアクセストークン(PAT)やSSHキーを使用

この問題を解決するためには、代替の認証方法を使用する必要があります。例えば、パーソナルアクセストークン(PAT)やSSHキーを使用することができます。

以下に、それぞれの方法についての手順を示します。

ありがて〜〜〜
パーソナルアクセストークン(PAT)の使用手順
以下、ChatGPTが示してくれた「パーソナルアクセストークン(PAT)の使用手順」です。
- GitHubのアカウント設定にアクセスし、「開発者設定」→「パーソナルアクセストークン」を選択します。
- 必要な権限を持つ新しいトークンを生成します。
- トークンをコピーします。
- 認証時にパスワードを求められた場合は、トークンをパスワードとして貼り付けます。

適切な認証方法を設定した後、再度レポジトリをクローンしてみてください。これにより、認証エラーが解決されるはずです。
SSHキーの使用方法
以下、ChatGPTが示してくれた「SSHキーの使用手順」です。
- ローカルマシンでSSHキーペアを生成します(まだ生成していない場合)。
- GitHubのアカウント設定の「SSHとGPGキー」に公開鍵を追加します。
- HTTPS URLの代わりにSSH URLを使用して、レポジトリをクローンします。

適切な認証方法を設定した後、再度レポジトリをクローンしてみてください。これにより、認証エラーが解決されるはずです。
githubでパーソナルアクセストークン(PAT)の発行
githubでログインをして、自分のアイコンマークをクリック。

Settingsをクリック。

Settingsページを開いた後、

画面の下の方に行くと、「Developer settings」という項目があるので、そこをクリック。

Developer settingsページを開き、「Personal access tokens」を選択。

「Fine-grained tokens」のBeta版も用意されていたが、今回は「Tokens(classic)」を選びました。

「Generate new token」で新しいトークンを生成してもらいます。

次の画面で以下の設定を行っていきます。
- Note → 利用目的
- Expiration → 有効期限
- Select scopes → 対象範囲
(以下、参考記事)


Select scopesでどれを選べば良いか分からない方はとりあえず「repo」にチェックを付けておきましょう。
https://style.potepan.com/articles/34189.html
これでローカルにクローンするなどのリポジトリ操作が可能となります。
設定後、「Generate token」をクリックすると、パーソナルアクセストークン(PAT)の発行が完了します。
画面にAccess token文字列が表示されますので、コピーしておきましょう。
※コピーせずに画面を閉じたり切り替えてしまうと、再発行する羽目に遭います。
再度pushしてみた
もう一度、git pushコマンドを打ち、パスワードが求められたところで先ほどコピーした文字列をペーストしました。
すると、無事push完了させることができました。
今回、pushしたのは職業訓練生だった頃に制作したポートフォリオサイトの変更分です。
よかったら覗いてみてください。↓