Search code examples
githerokuruby-on-rails-4

Heroku: Your account example@email.com does not have access to <app-name>


I am having trouble pushing code to Heroku. I have an account but I've forgotten the password. I created a new account and tried to push with it but now it shows me this error:

Your account someoneelse@gmail.com does not have access to
! SSH Key Fingerprint: 

How can I log in with the new account? I'd like to remove this error message with a fresh account. I have uploaded my latest ssh key to heroku. I have tried everything to push code on heroku (basic setup), but I can't get past this error.


Any application in your account has two ssh key and you should remove one which is not in your "~/.ssh/" folder or follow these steps.

Here's the solution:

  1. Go to www.heroku.com and login with the account that raises the error.

  2. Go to the applications settings. (e.g. for an application named "rails-demo", go to rails-demo settings and check whether there are two ssh keys)

  3. Remove the key which is no longer in your system

  4. Or you can remove them both and then generate new one with these commands.

    -> ssh-keygen -t rsa

    -> heroku keys:add

  5. Upload the new one and then in your console type

    -> heroku log-in

  6. Log in with your account and then push it to you app.

  7. It's solved now.


Solution

  • You need to:

    Make sure your ~/.ssh/config file has an 'myNewAccount' entry

    Host heroku.myNewAccount
      HostName heroku.com
      IdentityFile ~/.ssh/id_heroku_myNewAccount_rsa
      IdentitiesOnly yes
    

    And then change the remote 'origin' url:

    git remote set-url origin git@heroku.myNewAccount:<appname>.git
    

    Or, as Ian Vaughan comments below

    origin is normally heroku when using the 'heroku-toolbelt':

    git remote set-url heroku git@heroku.myNewAccount:<appname>.git
    

    That last step will make sure the git push will use your new account, and not the old one.

    See more at "Multiple heroku accounts".


    If you add "User git" in your config file, you can remove the credential user name 'git':

    Host heroku.myNewAccount
      User git
      HostName heroku.com
      IdentityFile ~/.ssh/id_heroku_myNewAccount_rsa
      IdentitiesOnly yes
    

    That means you can use:

    git remote set-url origin heroku.myNewAccount:<appname>.git
    # or
    git remote set-url heroku heroku.myNewAccount:<appname>.git