社内proxy環境下においてGitlabでfetchやpullはできるけどcloneやpushができなくなってしまった際の解決方法


前提

  • 社内のサーバにGitlabが乗っている(そのため今回の事象は少々特殊な状況であると言えます)
  • 直近でサーバのIPアドレスの付け替えが発生した
  • IPアドレスが変わって以降、fetchやpullはできるのにcloneやpushができなくなってしまった
  • 利用している端末はWindows10
  • 社内GitlabへのSSHでの接続は禁止されている
  • IP付け替え後、git remote set-url でリポジトリのURLは変更済

事象

社内サーバのGitlabに対して、pushやcloneを実行すると下記のエラーメッセージが表示され実行に失敗してしまう。
(前述の通りfetchやcloneは問題なし)

remote: HTTP Basic: Access denied
fatal: Authentication failed for 「リポジトリのURL」

見た感じ、リポジトリに対する権限不足や、fetch, pullはできるためURLのミスということではなさそう。
調べてみるとSSHに変えろという意見がちらほらありましたが、前提にある通りSSHでの接続は禁止されているため、それ以外の解決方法を模索することになりました。

解決方法

下記に解決方法がありました。
https://stackoverflow.com/questions/47860772/gitlab-remote-http-basic-access-denied-and-fatal-authentication

『Windowsの資格情報マネージャーから古い情報を消してみてくれ』という内容。
上記に従って、資格情報マネージャーを確認したところ古いIPアドレスの社内サーバGitlabの資格情報が残っていた。
社内サーバGitlabの資格情報をすべて消してみたところ、push, cloneが問題なくできるようになりました。

まとめ

解決してしまえばなんてことはない、資格情報マネージャー内の情報が混乱していたようです。
チーム内でWindows10端末を利用しているのは私ぐらいで、今回の事象が発生したのは私だけでした。
Windows7ではこの事象は起きないかもしれません。

今回はWindows10のお話でしたが、
Mac利用の方で同様の事象が発生した場合は、『KeychainAccess』を確認してみるといいかもしれません。

エラーメッセージでぐぐったら検索結果の上の方に出ていたけど、
英語が苦手すぎて気づけず2時間近くハマるという情けない結果に...
英語に拒否反応示したらだめですね。
あとちょうどエイプリルフールでStackoverflowのサイトがへんてこな表示になっていたのも...という言い訳です。

参考サイト

GitLab remote: HTTP Basic: Access denied and fatal Authentication
https://stackoverflow.com/questions/47860772/gitlab-remote-http-basic-access-denied-and-fatal-authentication