Railsチュートリアル第1章の1.4.3で、Githubへのpush時にエラーが出るようになっているので、
解決方法のメモとなります。
エラー内容
チュートリアルの1.4.3で下記コマンドを実行するとエラーが発生する。
$ git push -u origin master
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.
調べてみるとGitHubが2021年8月13日にパスワード認証を廃止したことが原因のようです。
https://news.mynavi.jp/article/20201222-1604003/
Railsチュートリアルでは、HTTPSを選択するように指示されているためにエラーが発生します。
そのため、Railsチュートリアルでは、「もうひとつのSSHオプションは中級ユーザー向けなので、SSH鍵の生成や設定を問題なくできる方はそうしていただいて構いません。」と記述されているのでSSHオプションでのやり方を説明します。
SSHオプションでの設定方法
SSH 公開鍵の作成
SSHで接続するには、Githubに登録する公開鍵の作成が必要となるので、下記コマンドを実行して公開鍵を作成します。
$ cd ~/.ssh
$ ssh-keygen
$ cat ~/.ssh/id_rsa.pub
詳しくはこちらが参考になりました。
Githubに公開鍵を登録する
https://github.com/settings/keys のページから登録出来ます。
「Title」には任意の名前を、Keyには、$ cat ~/.ssh/id_rsa.pub
を実行時に表示された公開鍵を貼り付けます。
記述出来たらAdd SSH key
をクリックして登録完了です。
gitのリモートoriginを変更する
Railsチュートリアル通り進められている方だとエラーが出た時点で、
下記コマンドを実行済みのためHTTPSでリモートoriginに追加されています。
$ git remote add origin https://github.com/<あなたのGitHubアカウント名>/hello_app.git
そのため下記コマンドを実行して、SSHで設定し直します。
$ git remote set-url origin git@github.com:<あなたのGitHubアカウント名>/hello_app.git
正しく変更が出来ていた場合、下記コマンドを実行すると下記のような表示になるはずです。
$ git remote -v
origin git@github.com:<あなたのGitHubアカウント名>/hello_app.git (fetch)
origin git@github.com:<あなたのGitHubアカウント名>/hello_app.git (push)
Githubリポジトリにpushする
下記コマンドを実行して、Githubにコードが反映されていれば成功です。
$ git push -u origin master