TortoiseGitをGithubの二段階認証に対応

Githubのログインを二段階認証(Two-factor Authentication)に変更したところ、TortoiseGitからpullなどをしようとすると「Authentication failed」するようになってしまいました。これを克服する手順です。

二段階認証の手順

以下ページを参考に。設定画面(https://github.com/settings/admin)でTwo-factor Authenticationを選んで進めれば良いだけです。
https://github.com/blog/1614-two-factor-authentication

Personal Access Tokensを取得

私は普段、SSH鍵は登録せず、HTTPS認証で毎回ID/Passを入力していました。その場合、Personal Access Tokensを取得して、これを今後はパスワード代わりに使う必要があるようです。
これもGithubの設定画面(https://github.com/settings/applications)からすぐ作れます。
f:id:Schima:20131129193100p:plain

_netrc

このエントリで言いたかったことは以上。めでたしめでたし・・・なんですが、毎回このトークンを打てる気がしないので、ファイルに書いておきます。Windows Vista以降なら、C:\Users\<ユーザー名>\_netrc という名前のテキストファイルを作ります。

内容はこのように。loginはユーザ名、passwordはPersonal Access Tokensを設定します。

machine github.com
login username
password 361151d549******************************

せっかく二段階認証にしたのにファイルに書いては、なんだかまた若干脆弱になったような気もしますが、気のせいと信じます。
また、この方法は今日始めたばかりなので、Personal Access Tokensの有効期限といった問題はまだわかりません。