最近使い始めたMacBookでgithubを使ったpushができないという事象に遭いました。
![](https://satoimo.blog/wp-content/uploads/2023/04/dee3d378d2671d9ced9434a4f9c9db90-1024x52.png)
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に日本語での解説をお願いすると、以下のような返事が来ました。
![ChatGPT](https://satoimo.blog/wp-content/uploads/2023/02/23150760-150x150.jpg)
このエラーメッセージは、GitHubが2021年8月13日にパスワード認証のサポートを終了したため、git pushコマンドで認証エラーが発生していることを示しています。
![](https://satoimo.blog/wp-content/uploads/2022/09/850c7612116999490846136e772ab7fd-150x150.jpg)
ええ、パスワード認証のサポートを終了したのに、パスワード入力が求められたの?
![](https://satoimo.blog/wp-content/uploads/2022/09/850c7612116999490846136e772ab7fd-150x150.jpg)
git pushコマンドで認証エラーが発生、、、
認証エラーを解決させねばならぬということか。
解決方法について
![ChatGPT](https://satoimo.blog/wp-content/uploads/2023/02/23150760-150x150.jpg)
この問題を解決するためには、代替の認証方法を使用する必要があります。例えば、パーソナルアクセストークンやSSHキーを使用することができます。
![](https://satoimo.blog/wp-content/uploads/2022/09/850c7612116999490846136e772ab7fd-150x150.jpg)
「パーソナルアクセストークンを使った方法」と「SSHキーを使った方法」の2つがあるんですね。
解決方法は2つありますが、パーソナルアクセストークンを使った解決方法の方が簡単だったので、以下、「パーソナルアクセストークンを使った方法」についてのみ解説いたします。
パーソナルアクセストークンの使用手順
以下、ChatGPTが示してくれた「パーソナルアクセストークンの使用手順」です。
- GitHubのアカウント設定にアクセスし、「開発者設定」→「パーソナルアクセストークン」を選択します。
- 必要な権限を持つ新しいトークンを生成します。
- トークンをコピーします。
- 認証時にパスワードを求められた場合は、トークンをパスワードとして貼り付けます。
![ChatGPT](https://satoimo.blog/wp-content/uploads/2023/02/23150760-150x150.jpg)
適切な認証方法を設定した後、再度レポジトリをクローンしてみてください。これにより、認証エラーが解決されるはずです。
![](https://satoimo.blog/wp-content/uploads/2022/09/850c7612116999490846136e772ab7fd-150x150.jpg)
説明ありがと〜
簡単にできそう
githubでパーソナルアクセストークンの発行
手順通りに作業を進めれば簡単に出来ることが分かったので、スクショ付きで解説していきます。
githubでログインをして、自分のアイコンマークをクリック。
![](https://satoimo.blog/wp-content/uploads/2023/04/github_mypage-1-1024x506.png)
Settingsをクリック。
![](https://satoimo.blog/wp-content/uploads/2023/04/80bb7d95fc22630ae97304f67fdfb183-1.png)
Settingsページを開いた後、
![](https://satoimo.blog/wp-content/uploads/2023/04/github_mypage02-2-1024x411.jpeg)
画面の下の方に行くと、「Developer settings」という項目があるので、そこをクリック。
![](https://satoimo.blog/wp-content/uploads/2023/04/github_mypage03-1-1024x282.jpeg)
Developer settingsページを開き、「Personal access tokens」を選択。
![](https://satoimo.blog/wp-content/uploads/2023/04/9a236337332a6dbebdbc26a3d6ae9763-1024x302.png)
「Fine-grained tokens」のBeta版も用意されていたが、今回は「Tokens(classic)」を選びました。
![](https://satoimo.blog/wp-content/uploads/2023/04/ca5ed88582f80ba6e15323b0b04b0528.png)
「Generate new token」で新しいトークンを生成してもらいます。
![](https://satoimo.blog/wp-content/uploads/2023/04/43e8a2dbb3fef2b2cb5a495c2acea26c-1024x203.png)
次の画面で以下の設定を行っていきます。
- Note → 利用目的
- Expiration → 有効期限
- Select scopes → 対象範囲
(以下、参考記事)
![](https://satoimo.blog/wp-content/uploads/2023/04/ac8d4dbbcd1cc9e4bda1e26446852d58-1024x551.png)
![](https://satoimo.blog/wp-content/uploads/2023/04/4826b24af1c5fd7fb9bdaaf327401e79-1024x453.png)
Select scopesでどれを選べば良いか分からない方はとりあえず「repo」にチェックを付けておきましょう。
https://style.potepan.com/articles/34189.html
これでローカルにクローンするなどのリポジトリ操作が可能となります。
設定後、「Generate token」をクリックすると、パーソナルアクセストークン(PAT)の発行が完了します。
画面にAccess token文字列が表示されますので、コピーしておきましょう。
※コピーせずに画面を閉じたり切り替えてしまうと、再発行する羽目に遭います。
再度pushしてみた
少し面倒臭いですが、ローカルにあった該当するディレクトリを丸々削除し、再度クローン。クローンしたものを編集し、再度pushすると、パスワードが求められます。
そこで、先ほどコピーした文字列をペースト。すると、無事push完了させることができるはずです。
以上、「GitHubを使ってpushすると、パスワードが求められた話」でした。今回は「Tokens(classic)」を選びましたが、今後「Fine-grained tokens」を使う機会があったらまた記事にして投稿したいと思います。