last update 2018年12月11日 18:07

SourceTree + Bitbucketで認証エラーが出る場合の対処方法 on Windows

sourcetree_bitbucket_error_6_sh

複合要因が原因でなかなか面倒な SourceTree + Bitbucket の認証エラーの対策について、良く分かってない人(例えば自分)向けに情報をまとめておきます。あ、Windows 環境がターゲットの記事です。

症状としては、SourceTree のGUIからリモートリポジトリにアクセスしようとすると、こんな感じのエラーが出る。

  • fatal: HttpsRequestException encounterd.
  • remote: Invalid username or password

でも、ターミナルから直接 git コマンドを打てば認証も通るしPUSHもPULLもできる、というケースになります。

結論から言えば、以下のサイトから「Git Credential Manager for Windows(以下、GCMW)」の最新版を入手してインストールすれば良い。一緒に git も入るので、SourceTree からはそっちを使わせる設定にする必要があります。

 

~~ここから余談~~

で、下手に Git 単品を最新化すると相性問題が出る。試しに git 2.19.1 入れてみたら「fatal: ArgumentException encountered.」とかいうどう頑張っても動きそうもないエラーが出るハメに。

なので以下はインストールしない。

※ちなみに、SourceTree の「Embedded」版の git は SourceTree からアップできる:→「オプション」→「Git」→「Gitバージョン」→「Update Embedded」。けども今回はこれも使わない。

~~余談ここまで~~

 

GCMW をインストールしたら、次に、SourceTree の「オプション」→「Git」→「Gitバージョン」→「System」をオンにする。(ボタンが薄くなる。これで、GCMW と一緒にインストールされた git が有効になる。)

sourcetree_bitbucket_error_1_sh

念のため、SourceTree のコンソールから以下のコマンドで意図したバージョンになっているか確認しておく。

$ git --version

$ git-credential-manager version

 

これでもリモートリポジトリの認証が通らない場合は、次に、公式サイトの手順(の1部)を実施する。

リンク先が消えたり、英語読みたくない病の人のために、一応、ざっと翻訳・補足しておく。

  1. 本家ではいきなり Atlassian クラウドのパスワードをリセットしろ、と書いているけど、これは僕の環境では必要なかった。ただし、手順「3」のクレデンシャルはちゃんと削除しておく。
  2. https://bitbucket.org にログインできることを確認する。
  3. Windows のコントロールパネルから「ユーザーアカウント」→「資格情報マネージャー」を開く。
    その中の「Windows資格情報」から、Bitbucket クラウド絡みの資格情報(Credential)を根こそぎ削除。
  4. 次に、SourceTree の「ツール」→「オプション」→「認証」タブから、Bitbucket 絡みの認証情報を削除。
  5. 最後に、「4」の画面から Bitbucket の認証情報を追加する。

以上。

ちなみに「資格情報マネージャ」ってのはこんな画面。
sourcetree_bitbucket_error_11_sh

これで無事、GUI からも PUSH / PULL できるようになりました。

僕はシステム屋ってわけでもないので年に数回しかコードを書かない年もあるわけですが、久しぶりに Python でも触ろうかと SourceTree を開いたらこんなことになっててショック。これ、きっと困ってた人多いだろうなぁ…、と思ったら案の定。断片的な情報があちこちに散らばってて、中には「結局 Bitbucket では認証できませんでした」というケースも…。うーん。

とりあえず、こういう作業が必要になってしまった背景については「Git Credential Manager for Windows」の README から少しだけ伺い知れる。けっこう昔の話だけど、GitHub 側が弱い暗号化を無効化した、なんて話があったみたいでそれと関係があるらしい。

GCMW 自体は Visual Studio Team Services、GitHub、Bitbucket のマルチファクタ認証向けにクレデンシャルを管理するソフトだそうなので、こういう作業は Bitbucket 以外の環境でも必要になるケースがあったんだろうな。もっとも、一番情報が少ないのは Bitbucket だっただろうけども。

実は、そのものズバリの答えが書いてあるサイトもあったんだけど、コンテキストが違う気がするし、困った人がたどり着ける気がしなかったし。困った人が読んでも、多分、その先に進めない予感がしたのでまとめさせていただきました。

コメントを記入