🔑
Logon failed, use ctrl+c to cancel basic credential prompt.
リモートリポジトリにプッシュができない
久しぶりに触ったWindowsマシンにて、SourceTreeでソースコードをプッシュしようとしたら下記エラーが表示された。
Error: Logon failed, use ctrl+c to cancel basic credential prompt.
手元でサクッと確認したかぎりでは
- 対象ブランチやGitHubアカウント自体には問題がない
- フェッチやプルはできる
- ローカルリポジトリにはコミットできている
- 別環境ではプッシュできる
以上のことから、該当マシンのSourceTree上でプッシュのみで発生した事象と判断。
また、SourceTree上で該当エラーが表示する際、GitHubアカウントのログインダイアログがポップアップする。
こちらに正しいusernameとパスワードを入力しても、状況は変わらず。
ググって情報収集
残念ながらエラーメッセージからはログインに失敗した旨しか分からないため、解決方法についてググって情報収集してみた。個人的に有力な情報だと感じた記事のリンクを載せておく。
- fix lỗi Logon failed use ctrl+c to cancel basic credential prompt
- Error: Logon failed, use ctrl+c to cancel basic credential prompt. - Atlassian Community
- authentication - Logon failed, use ctrl+c to cancel basic credential prompt - Stack Overflow
解決手段を試してみる
同事象のそれっぽい解決手段として、概ね以下のような情報が得られた。
- gitを最新に更新する
- アカウントの再認証をする
いずれも簡単な作業なのでさっそく試してみた。
結論として、gitを最新に更新しただけでは変わらず。
アカウントの再認証をすることで解決した。
SourceTreeのメニューから
- [ツール] - [オプション] - [認証] - 対象アカウントを選択して [編集] をクリック
- [ホスティングアカウントを設定] ダイアログにてブラウザ経由で再認証を行う。
- 「認証に成功」の表示が出ていればOK
この状態で再度プッシュすると、無事にリモートリポジトリにプッシュができた。
該当環境で半年くらい前には特に問題なかった気がするが…記憶が曖昧。
Stack Overflowの回答コメントで、GitHubがユーザー名とパスワードを使用したbasic認証を廃止した件の話に触れられていたが、これの影響だったのだろうか。
Deprecating password authentication | GitHub Developer Guide
Discussion