Heroku 'Permission denied (publickey) fatal: Could not read from remote repository' woes

前端 未结 14 1587
故里飘歌
故里飘歌 2020-12-12 08:57

I\'ve searched around for many hours on end looking to a solution to my seemingly easy-to-fix problem. It\'s not that my search turned up nothing, it\'s that my search turne

相关标签:
14条回答
  • 2020-12-12 09:20

    I know this has already been answered. But I would like to add my solution as it may helpful for others in the future..

    A common key error is: Permission denied (publickey). You can fix this by using keys:add to notify Heroku of your new key.

    In short follow these steps: https://devcenter.heroku.com/articles/keys

    First you have to create a key if you don't have one:

    ssh-keygen -t rsa
    

    Second you have to add the key to Heroku:

    heroku keys:add
    
    0 讨论(0)
  • 2020-12-12 09:21

    I had the exact same error (on windows 7) and the cause was different. I solved it in a different way so I thought I'd add the cause and solution here for others.

    Even though the error seemed to point to heroku really the error was saying "Heroku can't get to the git repository". I swore I had the same keys on all the servers because I created it and uploaded it to one after the other at the same time.

    After spending almost a day on this I realized that because git was only showing me the fingerprint and not the actual key. I couldn't verify that it's key matched the one on my HD or heroku. I looked in the known hosts file and guess what... it shows the keys for each server and I was able to clearly see that the git and heroku public keys did not match.

    1) I deleted all the files in my key folder, the key from github using their website, and the key from heroku using git bash and the command heroku keys:clear

    2) Followed github's instructions here to generate a new key pair and upload the public key to git

    3) using git bash- heroku keys:add to upload the same key to heroku.

    Now git push heroku master works.

    what a nightmare, hope this helped somebody.

    Bryan

    0 讨论(0)
  • 2020-12-12 09:24

    I had the same issue. And I tried to reset my keys as everyone said, but it still didn't worked. For was because I renamed the app.

    So what I did was to reset my keys and also rename app from console. Check this question for more information: Heroku push app problem

    0 讨论(0)
  • 2020-12-12 09:25

    I just thought I'd share that I found the answer to my own question.

    Writing out my problem made it even more clear to me, and I further investigated into where I thought my problem lay: the ssh key

    Turns out I was right. The issue wasn't with the key itself, but rather that I had not added it to my local Mac's list of known ssh keys. So even though my Heroku account had the correct key uploaded, my Mac could not authenticate with it because it could not find that key on my computer. The solution?

    ssh-add ~/.ssh/id_rsa
    #and, to confirm it's been added to the known list of keys
    ssh-add -l
    

    I would like to give credit to https://help.github.com/articles/error-permission-denied-publickey for being a good reference.

    0 讨论(0)
  • 2020-12-12 09:26

    i had the same case on linux ubuntu and just fixed it, it seems that OS was confused between the /root/.ssh/ and home/user/.ssh/ dir, what i did was:

    1. removed all keys from root and home/user .shh directory.
    2. generated a new key make sure to pay attention to the path of creation (/home/you/.ssh/id_rsa) or (/root/.ssh/id_rsa)
    3. check heroku keys heroku keys
    4. if keys in there clear heroku keys:clear
    5. heroku keys:add now in here if heroku couldn't find a key and asked to generate one right no, and this mean you have the same issue as mine, do the add command like this heroku keys:add /root/.ssh/id_rsa.pub the path that you'll add will be the one that you got in step 2.
    6. try git push heroku master now
    0 讨论(0)
  • 2020-12-12 09:26

    Had a similar issue, and tried lots of things. Ultimately what worked for me, was to have Gnu on Windows installed (https://github.com/bmatzelle/gow/releases) , and ensure that it was using the ssh tool inside that directory and not the one with Git. Once installed test with (ensure if its in your environment PATH that it preceds Git\bin)

    C:\Git\htest2>which ssh
    C:\Program Files (x86)\Gow\bin\ssh.BAT
    

    I used putty and pageant as described here:http://rubyonrailswin.wordpress.com/2010/03/08/getting-git-to-work-on-heroku-on-windows-using-putty-plink-pageant/

    Once the keys had been sent to heroku (heroku keys:add c:\Users\Person.ssh\id_rsa.pub), use

    ssh -v <username>@heroku.com 
    

    and ensure that your stack is showing use of Putty - ie a working stack:

    Looking up host "heroku.com"
    Connecting to 50.19.85.132 port 22
    Server version: SSH-2.0-Twisted
    Using SSH protocol version 2
    **We claim version: SSH-2.0-PuTTY_Release_0.62**
    Using Diffie-Hellman with standard group "group1"
    Doing Diffie-Hellman key exchange with hash SHA-1
    Host key fingerprint is:
    ssh-rsa 2048 8b:48:5e:67:0e:c9:16:47:32:f2:87:0c:1f:c8:60:ad
    Initialised AES-256 SDCTR client->server encryption
    Initialised HMAC-SHA1 client->server MAC algorithm
    Initialised AES-256 SDCTR server->client encryption
    Initialised HMAC-SHA1 server->client MAC algorithm
    Pageant is running. Requesting keys.
    Pageant has 1 SSH-2 keys
    Using username "*--ommitted for security--*".
    **Trying Pageant key #0**
    Authenticating with public key "rsa-key-20140401" from agent
    Sending Pageant's response
    Access granted
    Opened channel for session
    Server refused to allocate pty
    Server refused to start a shell/command
    FATAL ERROR: Server refused to start a shell/command
    

    One that was running previously and failed:

    C:\Git\htest2>ssh -v <username>@gmail.com@heroku.com
    OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
    debug1: Connecting to heroku.com [50.19.85.156] port 22.
    debug1: Connection established.
    debug1: identity file /c/Users/Person/.ssh/identity type -1
    debug1: identity file /c/Users/Person/.ssh/id_rsa type 1
    debug1: identity file /c/Users/Person/.ssh/id_dsa type -1
    debug1: Remote protocol version 2.0, remote software version Twisted
    debug1: no match: Twisted
    debug1: Enabling compatibility mode for protocol 2.0
    **debug1: Local version string SSH-2.0-OpenSSH_4.6**
    debug1: SSH2_MSG_KEXINIT sent
    debug1: SSH2_MSG_KEXINIT received
    debug1: kex: server->client aes128-cbc hmac-md5 none
    debug1: kex: client->server aes128-cbc hmac-md5 none
    debug1: sending SSH2_MSG_KEXDH_INIT
    debug1: expecting SSH2_MSG_KEXDH_REPLY
    debug1: Host 'heroku.com' is known and matches the RSA host key.
    debug1: Found key in /c/Users/Person/.ssh/known_hosts:1
    debug1: ssh_rsa_verify: signature correct
    debug1: SSH2_MSG_NEWKEYS sent
    debug1: expecting SSH2_MSG_NEWKEYS
    debug1: SSH2_MSG_NEWKEYS received
    debug1: SSH2_MSG_SERVICE_REQUEST sent
    debug1: SSH2_MSG_SERVICE_ACCEPT received
    debug1: Authentications that can continue: publickey
    debug1: Next authentication method: publickey
    debug1: Trying private key: /c/Users/Person/.ssh/identity
    debug1: Offering public key: /c/Users/Person/.ssh/id_rsa
    debug1: Server accepts key: pkalg ssh-rsa blen 277
    debug1: Trying private key: /c/Users/Person/.ssh/id_dsa
    debug1: No more authentication methods to try.
    Permission denied (publickey).
    
    0 讨论(0)
提交回复
热议问题