PR

GitHubを使ってpushすると、パスワードが求められた話

GitHubを使ってpushすると、パスワードが求められた話 Git

最近使い始めた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に日本語での解説をお願いすると、以下のような返事が来ました。

ChatGPT
ChatGPT

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

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

git pushコマンドで認証エラーが発生、、、

認証エラーを解決させねばならぬということか。

解決方法について

ChatGPT
ChatGPT

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

「パーソナルアクセストークンを使った方法」と「SSHキーを使った方法」の2つがあるんですね。

解決方法は2つありますが、パーソナルアクセストークンを使った解決方法の方が簡単だったので、以下、「パーソナルアクセストークンを使った方法」についてのみ解説いたします。

パーソナルアクセストークンの使用手順

以下、ChatGPTが示してくれた「パーソナルアクセストークンの使用手順」です。

  • GitHubのアカウント設定にアクセスし、「開発者設定」→「パーソナルアクセストークン」を選択します。
  • 必要な権限を持つ新しいトークンを生成します。
  • トークンをコピーします。
  • 認証時にパスワードを求められた場合は、トークンをパスワードとして貼り付けます。
ChatGPT
ChatGPT

適切な認証方法を設定した後、再度レポジトリをクローンしてみてください。これにより、認証エラーが解決されるはずです。

説明ありがと〜
簡単にできそう

githubでパーソナルアクセストークンの発行

手順通りに作業を進めれば簡単に出来ることが分かったので、スクショ付きで解説していきます。

githubでログインをして、自分のアイコンマークをクリック。

Settingsをクリック。

Settingsページを開いた後、

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

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

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

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

次の画面で以下の設定を行っていきます。

  • Note → 利用目的
  • Expiration → 有効期限
  • Select scopes → 対象範囲

(以下、参考記事)

GitHubのAccess token認証方法とは?Password認証の廃止 | ポテパンスタイル
GitHubでは2021年8月13日以降、 Password認証によるGit操作を廃止する対応が取られました。本記事では、GitHubでPassword認証に変わって利用可能なAccess token認証とSSH接続を利用する方法についてご

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」を使う機会があったらまた記事にして投稿したいと思います。

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