GitHub で2要素認証を有効にしたら git push できなくなった件の対処法
GitHub で2要素認証を有効にしたところ、コレまで git push
していた作業ディレクトリで、git push
時にパスワードを問われるようになり、正しいパスワードを入力したのに間違ってると言われてしまい、Push できなくなってしまった。
原因と対策
調べてみたところ、パスワード欄にログインパスワードではなく、Personal Access Token 文字列を入れることで git push
できるらしい。
自分はよく
https://【ユーザ名】:【パスワード】@github.com/【ユーザ名】/【リポジトリ名】.git
この書式を使って自分のリポジトリを git clone
したりしていたのだが、コレも変更する必要が出てきた。
コレも「パスワード」の代わりに「パーソナルアクセストークン」を使えば良い。
https://【ユーザ名】:【パーソナルアクセストークン】@github.com/【ユーザ名】/【リポジトリ名】.git
変更は git remote set-url
とかで行える。
Personal Access Token を記憶させる
この Personal Access Token を記憶させるには、以下のようにする。
MacOS の場合
MacOS の場合は、OS の「キーチェーンアクセス.app」に記憶させるよう設定すると良い。
$ git config --global credential.helper osxkeychain
コレで ~/.gitconfig
に設定を追加した後、Personal Access Token を使って git push
などを一度行えば、その情報が「キーチェーンアクセス」に記録される。
Windows の場合
Windows の場合は、wincred
というツールで「キーチェーンアクセス」同様に記憶させられるという文献を見たが、外部ツールのインストールが面倒臭いので別の方法を調べた。すると、ファイルに記録しておけることが分かったので、それを試してみる。
$ git config --global credential.helper store --file ~/.gitconfig-credential
このように入力し、~/.gitconfig
に
[credential]
helper = store --file ~/.gitconfig-credential
このように追記されることを確認する。それから git push
を行えば、~/.gitconfig-credential
というファイルに
https://【ユーザ名】:【Personal Access Token】@github.com
という1行が記録されるので、以降はコレを参照して git push
してくれるようになる。
- 参考 : Git - 認証情報の保存
二要素認証、ちょっとめんどくさいが、とりあえずやり方が分かって一安心。