GitHubでパスワード認証が廃止されるので二要素認証とトークン認証の設定方法をまとめた
GitHubのパスワード認証が2021/08/13以降、受け付けなくなるそうです。まだ期限まで時間はありますが、今のうちに対処しておくことにしました。
やることは2点です。
- 二要素認証を有効にする
- トークンを作成する
[1] 二要素認証を有効にする
[1-1] 設定画面へ移動する
GitHubにブラウザでアクセスし[Settings]を選択します。
[Account security]を選択します。
画面中央のTwo-factor authenticationの中から[Enable two-factor authentication]をクリックします。
パスワードを入力し、次の画面に進みます。
[1-2] 二要素認証の方法を選択する
続いて、二要素認証の方法を選択します。アプリとSMSの2種類から選択できます。
アプリは、スマホなどのモバイル端末のアプリで認証コードを取得する方法です。私は「Google Authenticator」を使用しています。
SMSは、携帯のショートメッセージに認証コードが送られてくる方法です。
私はアプリの方を選んだので、アプリの設定方法を紹介します。
[Set up using an app[を選択すると、リカバリーコードが表示されます。リカバリーコードは二要素認証が行えなくなった場合に使用します。この画面を消すと取得できなくなるので[Download]や[Copy]を用いて保存しておきます。
次の画面では、QRコードが表示されます。アプリでQRコードをスキャンして、認証情報をアプリに登録します。登録できたら、アプリに表示された6ケタの認証コードを入力します。入力後[Enable]を押せば、無事に設定完了です。
[2] トークンを作成する
二要素認証と同様にAccount settings画面に移動し、[Developer settings]を選択します。
[Personal access tokens]を選択します。
[Generate new token]をクリックします。
[Note]に何に使用するトークンなのかを入力し、[Select scopes]でトークンの適用範囲を選択します。私はリポジトリへのアクセスにのみ使用するため「repo」を選択しました。
次の画面に進むとトークンが表示されます。この画面から移動すると二度とトークンが確認できないので、保存しておきましょう。
[3] 試しにpushしてみる
従来のパスワード認証でpushしてみます。すると、認証エラーで失敗しました。
$ git push Username for 'https://github.com': {アカウント名} Password for 'https://{アカウント名}@github.com': remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/{アカウント名}/{リポジトリ名}/'
続いて、トークン認証を試します。トークン認証ではパスワード欄にトークンを入力します。
$ git push Username for 'https://github.com': {アカウント名} Password for 'https://{アカウント名}@github.com': Enumerating objects: 9, done. Counting objects: 100% (9/9), done. Delta compression using up to 2 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (5/5), 731 bytes | 731.00 KiB/s, done. Total 5 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), completed with 2 local objects. To https://github.com/{アカウント名}/{リポジトリ名}/ ... (省略) ...
トークン認証で、pushできました。