さて、Githubのgit CLIからのパスワード認証はdeprecatedになりました。近々廃止になるようです。
git pushなどした時にパスワードでの認証続けていると以下のようなメールがGitHubからきます。
Hi @XXX,
You recently used a password to access the repository at fukatani/AtCoderProblems with git using git/2.17.1.
Basic authentication using a password to Git is deprecated and will soon no longer work. Visit https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information around suggested workarounds and removal dates.
Thanks,
The GitHub Team
パスワードでの認証はやめて、SSH認証にするか個人アクセストークンでの認証を行う必要があります。
SSHでログインという手段もありますが、GitHub的にはhttpsを推奨しています。
個人アクセストークン(PAT)とパスワードの違いは、
- パスワードはGithub上で全ての権限が使えるようになってしまうが、個人アクセストークンは権限の範囲を指定することができる
- アクセストークンは複数発行したり、任意のタイミングで廃止したりできる
というところでしょうか。
最近はGitHubでスポンサーとして課金もできるようになりましたし、パスワードではなく個人アクセストークンでの認証に切り替えたほうがよいです。
個人アクセストークンを発行する
https://github.com/settings/tokens のページに入り、"Generate new token"をクリックします。
Noteで名前を付けられますが、なんでもいいです。
また、Select scopesのチェックボックスで今回発行するトークンの権限を設定することができます。
git push
したりしたいだけなら、repoにチェックを入れるだけでいいでしょう。
これが終わったら、ページの一番下にある"Generate token"をクリックします。
すると、以下のように、トークンが表示されます。今回の場合、ghから始まる英数字の列です。(一部消してます。)
文字列の横のクリップボードでコピーできます。
この文字列はこの画面を閉じると二度と表示させることができないので、ここで確実にコピーしてください。
コピーできなかった場合はもうそのトークンは使えないのでDeleteして、もう一度発行し直せば大丈夫です。
また、この文字列はパスワードのように認証に使えるものなので、ネットの海に公開しないでください。
(私の上記ghから始まるトークンも念の為、無効にしました。)
ここまでくればgit
コマンドでパスワードを求められた時に、パスワードの代わりにコピーした個人アクセストークンをペーストすれば認証を完了できます。
ユーザー名は従来通り入力します。
個人アクセストークンをローカルに保存する
さて、個人アクセストークンですが、ランダムに設定された英数字でとても覚えられません。
そこで、以下のコマンドを打てばgitでユーザー名とトークンを記憶してくれて、一回だけ打てば保存してくれます。
git config credential.helper store
これだけ。簡単ですね。
参考
https://docs.github.com/ja/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token
https://qiita.com/Kamo123/items/c92b03278b6302c641e3