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 してくれるようになる。


二要素認証、ちょっとめんどくさいが、とりあえずやり方が分かって一安心。