(SourceTree) Github での pull や push の度にブラウザのログイン画面が起動し、入力しても認証に失敗する (Password authentication in Git for Windows is no longer supported)

現象

久々に使う端末で SourceTree を使って Github での pull や push しようとしました。

ブラウザの小窓で開かれた Github のログイン画面
ブラウザの小窓で開かれた Github のログイン画面

すると、その度にブラウザのログイン画面が起動してきて、正しいID( or メールアドレス)とパスワードを入力しても認証に失敗する現象に遭遇しました。

認証に失敗すると Sourcetree は以下のエラーを表示してきました。

何度試しても一向に成功しない Github の認証
何度試しても一向に成功しない Github の認証

git -c diff.mnemonicprefix=false -c core.quotepath=false –no-optional-locks fetch github

Logon failed, use ctrl+c to cancel basic credential prompt.

エラー終了しました。エラーの内容は上記をご覧ください。

メールの受信

時を同じくして、 Github に登録しているメールアドレスに以下のメールが届いていました。

[GitHub] Action required - Password authentication in Git for Windows is no longer supported


We have detected that you recently attempted to authenticate to GitHub using an older version of Git

for Windows. GitHub has changed how users authenticate when using Git for Windows, and now
requires the use of a web browser to authenticate to GitHub. To be able to login via web browser, users
need to update to the latest version of Git for Windows. You can download the latest version at:

* https://gitforwindows.org/

If you cannot update Git for Windows to the latest version please see the following link for more
information and suggested workarounds:

* https://aka.ms/gcmcore-githubauthchanges

If you have any questions about these changes or require any assistance, please reach out to GitHub
Support and we’ll be happy to assist further.

* https://support.github.com/contact

Thanks,
The GitHub Team

Git for Windows の古いバージョンのサポートが終了するという通知です。

確認

そんなはずは……と思って Sourcetree の設定を確認。

Sourcetree のアップデート設定
Sourcetree のアップデート設定

Sourcetree の自動アップデートはオンになっているはず……ですが、更新されていませんでした。

Sourcetree の内部で使用している Git のバージョン確認
Sourcetree の内部で使用している Git のバージョン確認

Sourcetree の内部で使用している Git のバージョンも引きずられて古いバージョンのまま。

手動で「Update Embedded」を実行したり、 C:\Users\<USERNAME>\AppData\Local\Atlassian\SourceTree\git_local を削除して強制的に再度ダウンロードするように仕向けたりしましたが効果なし。 Sourcetree 本体が古いままなのでそれはそうか。

作業時は時間がなかったのでひとまずの対処法として、使用する Git を「System」に切り替えました(こちらは最新の Git for Windows を入れていたため)。

後日 Sourcetree のアップデートをしましたが……。

System内で使用している Git バージョン
System内で使用している Git バージョン

結局 Sourcetree 内臓の Git よりも Systemの方が新しくできるので切り替えました。

参考

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。