誰が必要なの?
Githubユーザ全員が行う必要があります。
2021 年 8 月 13 日以降、GitHub.com で Git 操作を認証する際にアカウント パスワードを受け付けなくなります。
何が必要なの?
- Github側で二段階認証の設定
- スマホ等で二段階認証アプリを利用(SMSによる認証も可)
- (スクリプト等でgithubリポジトリにアクセスする際自分のアカウントを使っている場合)トークンの発行
二段階認証設定
- Settings > Account Security > Two-factor Authentication > Enable two-factor authentication
- 二段階認証アプリの利用かSMSか選択
- この記事は二段階認証アプリを利用した記事です
- 回復コード表示、保存
- 何かあった時、なんとかするためのコード。超大事。
- 例えばスマホが突然壊れた!買い替えて二段階認証アプリを入れた!といったとき、前のスマホで二段階認証アプリの情報を削除出来ないと基本駄目だったりする。
- https://docs.github.com/ja/github/authenticating-to-github/securing-your-account-with-two-factor-authentication-2fa/recovering-your-account-if-you-lose-your-2fa-credentials
- QRコード表示、二段階認証アプリでスキャンしてコード入力
- 一般的なスマホの二段階認証アプリ、何でもよい。
- この記事ではGoogle authenticatorを利用。Microsoftの方がメジャーかも。
- 完了!
ログインしてみる
一般的な二段階認証同様、普通にユーザIDとパスワード入力した後、二段階認証アプリで表示される6桁の数字を入れてログイン。SMS認証だと毎回SMSに認証コードが届くのだろうか・・・?
トークン発行
二段階認証設定後、スクリプトからのgitへのアクセスは全てこうなってる。
stderr: remote: Invalid username or password.
fatal: Authentication failed for 'xxxxxx'
- Settings > Developer Settings > Personal access tokens > Generate new token
- 操作に必要な権限を付与
- tokenを保存、スクリプトのpasswordにtokenをそのまま設定
通るようになりました。