🔑

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

2021/06/19に公開

リモートリポジトリにプッシュができない

久しぶりに触ったWindowsマシンにて、SourceTreeでソースコードをプッシュしようとしたら下記エラーが表示された。

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

手元でサクッと確認したかぎりでは

  • 対象ブランチやGitHubアカウント自体には問題がない
  • フェッチやプルはできる
  • ローカルリポジトリにはコミットできている
  • 別環境ではプッシュできる

以上のことから、該当マシンのSourceTree上でプッシュのみで発生した事象と判断。

また、SourceTree上で該当エラーが表示する際、GitHubアカウントのログインダイアログがポップアップする。

こちらに正しいusernameとパスワードを入力しても、状況は変わらず。

ググって情報収集

残念ながらエラーメッセージからはログインに失敗した旨しか分からないため、解決方法についてググって情報収集してみた。個人的に有力な情報だと感じた記事のリンクを載せておく。

解決手段を試してみる

同事象のそれっぽい解決手段として、概ね以下のような情報が得られた。

  • gitを最新に更新する
  • アカウントの再認証をする

いずれも簡単な作業なのでさっそく試してみた。

結論として、gitを最新に更新しただけでは変わらず。
アカウントの再認証をすることで解決した。

SourceTreeのメニューから

  1. [ツール] - [オプション] - [認証] - 対象アカウントを選択して [編集] をクリック
  2. [ホスティングアカウントを設定] ダイアログにてブラウザ経由で再認証を行う。
  3. 「認証に成功」の表示が出ていればOK

この状態で再度プッシュすると、無事にリモートリポジトリにプッシュができた。

該当環境で半年くらい前には特に問題なかった気がするが…記憶が曖昧。

Stack Overflowの回答コメントで、GitHubがユーザー名とパスワードを使用したbasic認証を廃止した件の話に触れられていたが、これの影響だったのだろうか。
Deprecating password authentication | GitHub Developer Guide

Discussion