Heroku ‘Permission denied (publickey) fatale: impossibile leggere dal repository remoto’ noia

Ho cercato in giro per molte ore e ore alla ricerca di una soluzione per la mia apparentemente di facile risoluzione del problema. Non è che la mia ricerca mi ha fatto niente, è che la mia ricerca mi ha fatto così tante soluzioni, nessuna delle quali hanno lavorato.

Comunque, io sono semplicemente in grado di spingere, tirare, o recuperare dal mio Heroku repository dal mio Mac. Ogni tentativo mi dà (come se fosse beffardo) il seguente errore:

‘Permission denied (publickey). fatale: impossibile leggere da remoto
repository.’

Ho provato e ri-provato) per risolvere il problema in molti modi diversi. Come ho detto, ho passato buona parte degli ultimi due giorni a cercare in giro per una risposta. Qui sono alcune delle cose che ho provato:

  • heroku chiavi:chiara seguita da heroku chiavi:aggiungere
  • Rigenerare una chiave ssh sul mio proprio con “ssh-keygen -t rsa’
  • Sgombrare la mia .ssh directory, seguita da heroku chiavi:chiara, seguita da generare una chiave ssh
  • Cancellare la mia app su heroku e ricreare uno (per fortuna non molto ci)

Posso recuperare dal mio repository GitHub bene, quindi so che non è la connettività di rete (ping heroku funziona anche).

Come un ripiego (che spero non si trasformi in un permanente), ho accesso al mio Ubuntu Amazon AWS ec2 istanza. Tirando e spingendo verso e da Heroku funziona perfettamente. Per questo motivo, mi sento ancora come se il problema è con la chiave ssh sul mio Mac. Entrambe le chiavi in mio Heroku conto. Non l’indirizzo email al fine della chiave importa?

EDIT: posso spingere e tirare da GitHub bene (non sto usando ssh, però), quindi perché non Heroku?

A questo punto sono disposto a provare qualsiasi cosa. Grazie!

 

14 Replies
  1. 278

    So che questo è già stato risposto. Ma vorrei aggiungere la mia soluzione come può utile per gli altri in futuro..

    Una comune chiave di errore è: Permission denied (publickey). È possibile risolvere questo problema utilizzando keys:add per notificare Heroku della vostra nuova chiave.

    In breve attenersi alla seguente procedura: https://devcenter.heroku.com/articles/keys

    È necessario creare una chiave, se non ne hai uno:

    ssh-keygen -t rsa
    

    Secondo è necessario aggiungere la chiave di Heroku:

    heroku keys:add
    
    • Grazie kris, qualcuno dal futuro 🙂 questo funziona per me
    • heroku chiavi:aggiungere è il mio tutorial perso credo… grazie! 🙂
    • Funziona, grazie mille.
    • +1 per il collegamento heroku tasti pagina
    • La chiave deve essere generato se non l’avete già, nel mio caso ho già avuto la chiave e solo bisogno di per aggiungere la chiave heroku
    • La prima è inutile. heroku keys:add vi aiuterà a creare se non si dispone di un tasto.
    • Eseguire ssh-keygen -t rsa se il RSA non viene generato altrimenti heroku keys:add dovrebbe essere sufficiente
    • Mi piace che la soluzione! +1
    • Nel caso In cui qualcun altro sta avendo questo problema, dopo di generare una nuova chiave e facendo heroku chiavi:aggiungi anche io ho dovuto aggiungere una voce nel mio ~/.ssh/config file specificando la mia nuova chiave SSH come IdentityFile per Host heroku.com

  2. 122

    Io ho pensato di condividere che ho trovato la risposta alla mia domanda.

    A scrivere il mio problema è ancora più evidente per me, e ho studiato ulteriormente in cui ho pensato che il mio problema laici: la chiave ssh

    Si è scoperto che avevo ragione. Il problema non era con la chiave stessa, ma piuttosto che non avevo aggiunto al mio Mac locale dell’elenco di chiavi ssh. Così, anche se il mio Heroku account avuto la giusta chiave caricato, il mio Mac non può autenticare, perché non riusciva a trovare la chiave sul mio computer. La soluzione?

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

    Vorrei dare credito a https://help.github.com/articles/error-permission-denied-publickey per essere un buon riferimento.

    • Grazie per il tuo feedback, più preciso della situazione rispetto al mio commento iniziale. +1
    • grazie uomo! questo mi ha aiutato molto!
    • Su Windows si dovrà cominciare Git Bash (a destra fare clic su una cartella), e avviare un ssh-agent che è possibile eseguendo `ssh-agent` (mente back-zecche) e poi aggiungere la chiave come descritto sopra. Devo fare questo ogni volta che avvio il Git Bash/ssh-agent, si dimentica di ciò che è stato aggiunto.
    • Oh uomo! GRAZIE!!!!
    • Ho fatto questo e ancora non funziona. Ho finito per dover aggiungere una variabile d’ambiente chiamata a CASA insieme alla directory mia .ssh cartella era in
    • Grazie – non avrebbe mai pensato a questo!
    • questo per me ha funzionato come un fascino!!
    • Ciò ha risolto il mio problema, non superiore votato risposta, grazie 🙂
    • Grazie mille

  3. 31

    Ho avuto lo stesso identico errore (su windows 7) e la causa era diverso. Ho risolto in modo diverso, quindi ho pensato di aggiungere la causa e la soluzione qui anche per gli altri.

    Anche se l’errore è sembrato punto di heroku davvero l’errore è stato detto "Heroku can't get to the git repository". Ho giurato che ho avuto le stesse chiavi su tutti i server, perché l’ho creato e caricato su uno dopo l’altro allo stesso tempo.

    Dopo aver trascorso quasi un giorno su questo mi sono reso conto che a causa git era solo che mi mostra le impronte digitali e non la chiave effettiva. Ho potuto verificare che la chiave di corrispondenza il mio HD o heroku. Ho guardato nel file degli host conosciuti e indovinate un po ‘ … mostra le chiavi per ogni server e sono stato in grado di vedere chiaramente che il git e heroku pubblico tasti non corrispondono.

    1) ho cancellato tutti i file nella mia cartella chiave, la chiave da github utilizzando la loro sito web, e la chiave dal heroku utilizzando git bash e il comando heroku keys:clear

    2) Seguito github istruzioni qui per generare una nuova coppia di chiavi e caricare la chiave pubblica di git

    3) utilizzando git bash- heroku keys:add
    per caricare la stessa chiave per heroku.

    Ora git push heroku master opere.

    che incubo, spero che questo ha aiutato qualcuno.

    Bryan

    • Travasato il mio cervello in questo fino a quando ho visto il tuo post. Non appena ho fatto git e heroku chiavi stesso, tutto andava bene. Ma non capisco perché debbano essere le stesse.
    • Grazie per la risposta trascorso secoli con questo problema
    • molto utile git documentazione link, funziona tutto perfetto
    • Questo ha funzionato per me, dopo un paio di giorni cercando di capire. Sono sorpreso Heroku può rimanere in affari con un problema di usabilità questo brutto. Ci dovrebbe essere un modo più semplice per fare questo.
    • Grazie. Ha lavorato per me, solo una cosa: in github link da qualche parte dice di fare “ssh-add”. Lì ho avuto un problema, ma ho trovato la soluzione qui: stackoverflow.com/questions/17846529/…
  4. 17

    Il problema che ho avuto è che ero solo utilizzando il protocollo https per il mio account di GitHub. Ho bisogno di fare in modo che il mio account di GitHub è il programma di installazione per l’accesso ssh e che GitHub e heroku erano entrambi utilizzando le stesse chiavi pubbliche. Questi sono i passi che ho seguito:

    1. Passare al ~/.ssh directory ed eliminare il id_rsa e id_rsa.pub se ci sono. Ho iniziato con nuove chiavi, anche se potrebbe non essere necessario.

      $ cd ~/.ssh
      $ rm id_rsa id_rsa.pub
      
    2. Seguire la procedura su gitHub per generare le chiavi ssh
    3. Accesso a heroku, creare un nuovo sito e aggiungere la vostra chiave pubblica:

      $ heroku login
      ...
      $ heroku create
      $ heroku keys:add
      $ git push heroku master
      
  5. 6

    ho avuto un caso simile su linux ubuntu e appena risolto, sembra che il sistema operativo era confuso tra la /root/.ssh e/home/utente/.ssh/dir, cosa che ho fatto è stato:

    1. rimosso tutte le chiavi da root e home/utente .shh directory.
    2. generata una nuova chiave assicurarsi di prestare attenzione al percorso di creazione (/home/si/.ssh/id_rsa) o (/root/.ssh/id_rsa)
    3. controllare heroku chiavi heroku keys
    4. se i tasti in là chiara heroku keys:clear
    5. heroku keys:add ora qui se heroku riuscivo a trovare una chiave e ha chiesto di generare uno proprio di no, e questo significa che hanno lo stesso problema come il mio, do il comando aggiungi come questo heroku keys:add /root/.ssh/id_rsa.pub il percorso che dovrai aggiungere è quella che si ha nel passaggio 2.
    6. provare git push heroku master ora
  6. 3

    Mio modo su Windows 8

    1. Aggiungere una directory con ssh-keygen per la variabile di sistema PATH, di solito C:\Program Files (x86)\Git\bin

    2. Aprire CMD, andare a C:\Users\Me\

    3. Generare una chiave SSH ssh-keygen -t rsa

      Invio di file in cui salvare la chiave (//.ssh/id_rsa): .ssh/id_rsa
      (modifica il valore predefinito non corretto percorso .ssh/somegoodname_rsa)

    4. Aggiungere la chiave Heroku heroku keys:add

      Selezionare una chiave creata da un elenco

    5. Vai alla tua cartella app, scrivere qualche bel codice

    6. Init un repo git git init git add . git commit -m 'chore(release): v0.0.1

    7. Creare Heroku applicazione heroku create

    8. Distribuire la tua applicazione git push heroku master

    9. Aprite l’app heroku open

  7. 2

    Avuto un problema analogo, e provato un sacco di cose. Alla fine che cosa ha funzionato per me, era quello di avere Gnu su Windows installato (https://github.com/bmatzelle/gow/releases) , e assicurarsi che è stato utilizzando ssh strumento all’interno di quella cartella e non l’uno con Git. Una volta installato prova con (verificare se nel vostro ambiente di PERCORSO che preceds Git\bin)

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

    Ho usato stucco e spettacolo come descritto qui:http://rubyonrailswin.wordpress.com/2010/03/08/getting-git-to-work-on-heroku-on-windows-using-putty-plink-pageant/

    Una volta che le chiavi erano state inviate a heroku (heroku chiavi:aggiungere c:\Users\Person.ssh\id_rsa.pub), uso

    ssh -v <username>@heroku.com 
    

    e garantire che il vostro stack è di mostrare l’uso di Stucco – vale a dire, un lavoro 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
    

    Uno che è stato in esecuzione in precedenza e non è riuscito:

    C:\Git\htest2>ssh -v <username>@[email protected]
    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).
    
    • Solo per dire che questo è l’utilizzo di Windows 8 (8.1). Anche questa mi sembra la GoW ssh strumento è la chiave, dato che sono stato in grado di utilizzare senza il mastice pezzi, e usare ssh-keygen.
  8. 2

    è necessario creare una nuova chiave ssh, digitando il seguente
    – ssh-keygen -t rsa

    Allora avete bisogno di aggiungere:
    – heroku chiavi:aggiungere

    Quindi se si digita
    – heroku aprire

    Il problema è stato risolto.

    Ha funzionato per me comunque, si potrebbe fare un tentativo…

  9. 2

    Ho avuto lo stesso errore, e perché ho 4 chiavi ssh, quindi ho provato a seguire:

    ssh-keygen -t rsa
    heroku keys:add
    

    poi, quattro opzioni:

    1) github_rsa.pub
    2) id_boot2docker.pub
    3) id_rsa.pub
    4) sshkey.pub
    

    Ho scelto 3), la più recente

    Quindi, posso correggere l’errore.

  10. 1

    Io uso questo metodo per risolvere questo problema
    Forse si può provare

    “Abilitare ssh-agent”

    1. Scaricare git

    http://git-scm.com/

    1. Installarlo

    2. Abilitare ssh-agent

    C:\Program File\Git\cmd

    start-ssh-agent

    Il messaggio eliminata dopo che ho agente abilitato
    Spero che questo vi aiuterà

  11. 1

    Vorrei aggiungere un’altra soluzione dato che io non l’ho visto qui. Il mio problema era che heroku è stata di collegamento per l’url sbagliato (dato che ho continuato a suonare in giro con url nomi). Modifica l’url remoto risolto il mio problema:

    git remote set-url heroku <heroku-url-here>
    
  12. 0

    Ho avuto lo stesso problema. E ho provato a reimpostare la mia tasti come tutti hanno detto, ma ancora non ha funzionato. Era perché ho rinominato l’app.

    Quindi quello che ho fatto è stato per ripristinare le mie chiavi di casa e anche rinominare le app da console. Controllare questa domanda per ulteriori informazioni: Heroku push app problema

  13. 0

    COSÌ semplice soluzione , andare a c:/Users/user_name/.ssh/e eliminare tutti i pub /chiave privata coppie , in questo modo heroku generare le chiavi per voi.

  14. 0

    Ho avuto un simile heroku ssh errore che non riuscivo a risolvere.

    Come risolvere il problema, ho usato il nuovo heroku http-git funzionalità (http trasporto per “heroku” remoto invece di ssh). Dettagli qui: https://devcenter.heroku.com/articles/http-git

    (Versione breve: se si dispone di un progetto già impostato il modo standard, eseguire heroku git:remote –http-init per cambiare “heroku” telecomando per http.)

    Un buon lavoro rapido giro se non avete il tempo di fix/a risolvere un ssh problema.

    • Nel mio caso, il problema sembra essere legato a “:”‘s in remoto ssh percorsi. (Git 1.9.4 per windows). Per qualche motivo ssh://[email protected]:repo non funziona con “fatale: impossibile leggere dal repository remoto”, mentre ssh://[email protected]/repo” riesce.

Lascia un commento