Heroku に git push しようとしたらユーザ名とパスワードを問われ続ける問題の解決法
Windows10 にて。
ある日、いつものように Heroku に向けて git push
しようとしたら、以下のように Username と Password を問われた。
$ git push heroku master
Username for 'https://git.heroku.com':
Password for 'https://git.heroku.com':
remote: ! WARNING:
remote: ! Do not authenticate with username and password using git.
remote: ! Run `heroku login` to update your credentials, then retry the git command.
remote: ! See documentation for details: https://devcenter.heroku.com/articles/git#http-git-authentication
fatal: Authentication failed for 'https://git.heroku.com/my-app.git/'
ココで、Username と Password に何を入れても、入れなくても、上手く行かなかった。
そういえば Heroku のパスワードを変えたんだった。と思い、$ heroku login
をやり直してみたが、どうも変わらず。
ググってみると、Username は空のまま、Password には heroku auth:token
で取得したトークンを入力しろ、という文献がいくつか見つかったが、コレは上手く行かず。
- 参考 : git push heroku master がエラーを吐く - Qiita
- 参考 : Herokuのチュートリアルでgit push heroku masterできずに困る - Qiita
そもそも $ heroku login
した時の認証情報はどのように保持されているのかと思ったら、ユーザホームディレクトリ直下に、~/_netrc
というファイルが生成されて、ココに暗号化されて記述されているようだ。
Heroku のパスワードを変更したタイミングで、この認証情報がどうにも更新できなくなったようだ。
もう少し調べてみると、この ~/_netrc
(アンダースコア始まり) のファイルを ~/.netrc
と、ピリオド始まりにリネームすると、このファイルが上手く作用するんだとか。
ということで、以下の手順で問題が解消した。
- 既存の
~/_netrc
を消してしまう $ heroku login
を改めて実行する (最近はブラウザが起動してソチラで認証するようになったみたい)~/_netrc
が生成されているので、~/.netrc
にリネームする
コレで $ git push heroku master
が成功するようになった。