Permiso denegado (key pública) al implementar código heroku. fatal: el extremo remoto colgó inesperadamente

Estoy intentando desplegar mi código en heroku con la siguiente línea de command:

git push heroku master 

pero recibe el siguiente error:

 Permission denied (publickey). fatal: The remote end hung up unexpectedly 

Ya he cargado mi key pública SSH, pero todavía aparece este error.

Tienes que upload tu key pública a Heroku:

 heroku keys:add ~/.ssh/id_rsa.pub 

Si no tiene una key pública, Heroku le pedirá que agregue una automáticamente, que funciona a la perfección. Solo usa:

 heroku keys:add 

Para borrar todas sus keys anteriores, haga lo siguiente:

 heroku keys:clear 

Para mostrar todas sus keys existentes, haga lo siguiente:

 heroku keys 

EDITAR:

Lo anterior no pareció funcionar para mí. Me había equivocado con la variable de entorno HOME y por eso SSH estaba buscando keys en el directory incorrecto.

Para garantizar que SSH compruebe la key en el directory correcto, haga lo siguiente:

 ssh -vT git@heroku.com 

Que mostrará las siguientes líneas (Muestra)

 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/Wrong/Directory/.ssh/identity type -1 debug1: identity file /c/Wrong/Directory/.ssh/id_rsa type -1 debug1: identity file /c/Wrong/Directory/.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/Wrong/Directory/.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/Wrong/Directory/.ssh/identity debug1: Trying private key: /c/Wrong/Directory/.ssh/id_rsa debug1: Trying private key: /c/Wrong/Directory/.ssh/id_dsa debug1: No more authentication methods to try. 

Permission denied (publickey).

De lo anterior, se puede observar que ssh busca las keys en el directory /c/Wrong/Directory/.ssh , que no está donde tenemos las keys públicas que acabamos de agregar a heroku (usando heroku keys:add ~/.ssh/id_rsa.pub ) ( Tenga en count que en Windows OS ~ refiere a la ruta HOME que en win heroku keys:add ~/.ssh/id_rsa.pub es C:\Users\UserName )

Para ver su directory de inicio actual, haga: echo $HOME o echo %HOME% (Windows)

Para establecer su directory HOME correctamente (me refiero al directory principal del directory .ssh , para que ssh pueda search las keys en el directory correcto) remita estos enlaces:

  1. SO Responda cómo establecer la variable de entorno Unix permanentemente

  2. SO Pregunta con respecto a ssh buscando keys en el directory incorrecto y una solución para el mismo.

Tuve el mismo problema, los pasos a continuación me funcionaron

 ->heroku login 

abc@gmail.com y contraseña

 ->cd C:\Users\yourusername\.ssh (OR for cygwin shell ->cd ~/.ssh) 

->ssh-keygen -t rsa -f id_rsa

si pregunta cualquier frase de contraseña, no use espacios en blanco, complete con una frase de contraseña, pero no la olvide.

Después de generar la key, debe agregarla, como tal

 $ ssh-add 

y a heroku

 ->heroku keys:add "id_rsa.pub" 

cambiar el directory al espacio de trabajo, que

 ->git clone git@heroku.com:stark-dawn-1234.git -o heroku 

usa la frase de contraseña que configuraste arriba.


En realidad, también elimino files a continuación, pero no estoy seguro de que sean imp,

C: \ Users \ sunombre de usuario.heroku \ cnetworkingientals y C: \ Users \ sunombre de usuario.ssh \ known_hosts

Este problema me estaba molestando por unos días.

Esto podría ayudar.

1) Averigua qué llaves tienes en Heroku ahora.

 $ heroku keys === 1 key for joe@example.com ssh-dss AAAAB8NzaC...DVj3R4Ww== joe@workstation.local 

2) Crea un file ~ / .ssh / config:

 $ sudo vim ~/.ssh/config 

Edita con esta información

 Host heroku.com Hostname heroku.com Port 22 IdentitiesOnly yes IdentityFile ~/.ssh/ssh-dss # location and name of your private key TCPKeepAlive yes User joe@workstation.local 

Aquí está el enlace que explica cómo administrar sus keys ssh: http://devcenter.heroku.com/articles/keys#adding_keys_to_heroku

Tuve el mismo problema porque no tenía keys públicas, así que lo hice:

 heroku keys:clear heroku keys:add 

Eso generará una key pública y luego funciona bien

Si usted es un usuario de Windows, las otras soluciones probablemente no resuelvan su problema.

Uso Windows 7 64-Bit + Git-1.7.7.1-preview20111027 y la solución fue copyr mis keys de C:\users\user\.ssh a C:\Program Files (x86)\Git\.ssh . Ahí es donde este cliente de git busca las keys cuando empuja hacia heroku.

Espero que esto ayude.

Esta fue la solución para mí:

 ssh-add ~/.ssh/my_heroku_key_rsa 

Para compartir mi experiencia:

Git (mi propia installation) estaba buscando la key llamada 'id_rsa'.

Así que traté de cambiar el nombre de mis keys a 'id_rsa' y 'id_rsa.pub' y funcionó.

Por cierto, estoy seguro de que hay otra manera de hacerlo, pero aún no lo busqué más.

Si ya ha cargado la key, intente eliminarla y vuelva a cargarla con una nueva key.

  heroku keys:remove //removes the existing key ssh-keygen -t rsa //generates a new key in ~/.ssh folder heroku keys:add //uploads the new key, if no arguments r passed then the key generated //in default directroy ie, ~/.ssh/id_rsa is uploaded git push heroku 

Esto debería funcionar.

Me suicidé durante 3 días probando todas las combinaciones posibles para intentar que esto funcionara. Finalmente, intenté crear una key DSA y funcionó.

Pruebe DSA en lugar de RSA si no está funcionando para usted.

(Estoy usando Ubuntu 11.10, ruby ​​1.8.7, heroku 2.15.1)

En Windows 7,64 bit, la solución anterior (Onur Turhan) funcionó para mí con ligeros cambios como los siguientes

 C:\Users\MyName > heroku login 

Ingrese el correo electrónico / contraseña

 C:\Users\MyName >ssh-keygen -t rsa -f id_rsa 

Esto generó dos files (id_rsa e id_rsa.pub) en mi directory c: \ Users \ MyName (No en el directory .ssh)

 heroku keys:add id_rsa.pub git clone git@heroku.com:some-heiku-xxxx.git -o heroku 

Supongo que es más importante agregar el file "id_rsa.pub" correcto. Después de generar la key pública con keygen, solo verifique que está agregando la key correcta mirando la timestamp cuando se creó.

Un solo command funciona:

 heroku keys:add 

Hará uno si no existe.

Tuve este problema cuando se instaló TortoiseGIT en mi máquina. Después de cambiar la variable de entorno GIT_SSH de

 "c:\Program Files\TortoiseGit\bin\TortoisePlink.exe" 

a

 "c:\Program Files (x86)\Git\bin\ssh.exe" 

y siguiendo este tutorial con ssh-keygen y keys:add , ¡funciona!

Empujar me funcionaba y luego se detuvo de repente.

Si el heroku api está experimentando time de inactividad, recibirá este error cuando intente presionar.

Comprobar:

https://status.heroku.com/

antes de enloquecer demasiado.

La respuesta dada anteriormente SÍ funciona, pero descubrí que necesitaba hacer algunos pasos adicionales antes de que funcionara.

  1. Eliminé todos los files id_rsa * y generé un nuevo SSH usando esta guía.
  2. Luego, destruí la aplicación heroku. Se eliminó el file ~ / .heroku / cnetworkingentials.
  3. command 'heroku create' (y dado que el file de cnetworkingenciales se elimina, le pedirá su correo electrónico / contraseña).
  4. FINALMENTE escriba 'heroku keys: add' y cargará el file pnetworkingeterminado ~ / .ssh / id_rsa.pub.
  5. ¡Funciona! Bueno … ¡YMMV pero realmente espero que esto pueda ser de ayuda ya que luché todo el día tratando de resolver esto! Jaja

Secuencia a seguir

 $ heroku login $ ssh-keygen -t rsa $ heroku keys:add 

Al ejecutar una segunda statement, se solicitará una input, simplemente presione Entrar (regresar) tres veces y se agregará una key.

Para todos aquellos que probaron todo lo mencionado anteriormente en Windows 7 y aún así no funcionó, esto es lo que hice: – abrir GitBash.exe desde el directory de Git C: \ Archivos de progtwig (x86) \ Git \ (don ' t abrir un símbolo del sistema, esto no funcionará). – agregue lo siguiente como se mencionó anteriormente , pero debe eliminar el #

 Host heroku.com Hostname heroku.com Port 22 IdentitiesOnly yes IdentityFile ~/.ssh/ssh-dss TCPKeepAlive yes User joe@workstation.local 

ahora ejecuta git push heroku master y debería funcionar.

Parece que su file ~/.ssh/authorized_keys no está configurado correctamente. Comtesting eso:

  • Está en el path correcto.
  • Los permissions del file son 0600.
  • Los permissions de ~/.ssh son 0700.

Tenía que hacer:

 $ ssh-keygen -t rsa $ heroku keys:add 

Entonces funcionó:

 $ git push heroku master 

Comtesting tu configuration .ssh para heroku. Vaya a la carpeta .ssh y abra el file de configuration

 cd ~/.ssh subl config 

El 'subl' es para Sublime Text, pero puede usar cualquier editor que desee. Busque la línea "IdentityFile" y asegúrese de que tenga la key no pública en la list:

 IdentityFile "/Users/ircmullaney/.ssh/my_ssh" 

no

 IdentityFile "/Users/ircmullaney/.ssh/my_ssh.pub" 

Eso lo hizo por mí. No estoy seguro de por qué el mío tenía la versión pública en el file de configuration, pero lo hizo y arrojaba el error:

 Permissions 0644 for '/Users/ircmullaney/.ssh/my_ssh.pub' are too open. 

Todavía tenía problemas después de probar todas estas ideas. Este fue mi problema:

Mi repository heroku remoto estaba funkeado. Lo actualicé de la siguiente manera:

 git remote -v 

A continuación, elimine el heroku que está equivocado:

 git remote rm heroku 

Luego agrega el nuevo

 git remote add heroku git@heroku.com:sitename.git 

Puedes get el nombre del sitio desde la página de configuration de Heroku para tu aplicación. ¡Buena suerte!

El problema al que me enfrenté fue en Windows e, invariablemente, cada vez que ejecuto las "keys heroku: agregar" seleccionó las keys github. Estos son los pasos que seguí para resolver el problema

  1. fue al directory .ssh en la carpeta "Documento y configuration" y eliminó las keys git hub
  2. ejecutar el command heroku keys: agregar

El command anterior me pidió que generara una nueva key y lo siguiente fue la salida No se pudo encontrar una key pública existente. ¿Te gustaría generar uno? [Yn] Y Generando nueva key pública SSH. Cargando la key pública SSH C: / Documents and Settings / Admin / .ssh / id_rsa.pub … ¡listo! La gem 'heroku' ha sido desaprobada y reemplazada por Heroku Toolbelt, descárgala e instálala desde https://toolbelt.heroku.com .

  1. vuelva a ejecutar el command heroku keys: agregar

El command anterior no dará la siguiente salida. Se encontró la key pública existente: C: / Documents and Settings / Admin / .ssh / id_rsa.pub Carga de la key pública SSH C: / Documents and Settings / Admin / .ssh / id_rsa.pub. . hecho

  1. Ahora usa el maestro de git push heroku

para mí, usar los pasos anteriores resolvió el problema y pude implementar la aplicación en la nube.

Estaba experimentando el mismo problema; seguir estos pasos debería ayudar:

  1. Primero, inicie session: heroku login
  2. Borrar todas las keys: keys heroku: borrar
  3. Eliminar todos los files en la carpeta local (todos los files know_host y know_host ) en .ssh/ folder
  4. Inicia session de nuevo: heroku login – te avisará sin key, así que sigue las instrucciones en pantalla.

Me gustaría agregar que el directory no es necesariamente C: \ Users \ [username] \. Ssh. Es el directory en el que creó su key pública.

Por ejemplo, mi directory de inicio en Windows se cambió a C: \ [nombre de usuario]. Su directory de inicio en una subcarpeta .ssh es el mejor y más probable lugar donde puede haber creado sus keys. Puede verificar su directory personal en Windows con el command:

  echo %HOMEPATH% 

Si quiere usar "sudo", ejemplo:

 sudo git clone git@heroku.com......... -o heroku 

también debe generar la key ssh para su usuario raíz.

 sudo su cd /root/.ssh ssh-keygen -t rsa .... heroku keys:add id_rsa.pub 

y funcionará

si no usa el usuario raíz, genere la key ssh en su directory de usuario.

 cd /home/user/.ssh 

Lo siento si mis oraciones se estropearon …

Intente reparar los permissions en la Utilidad de disco (Mac OS X). Me ayudó

Al principio, asegúrese de que los files ocultos estén visibles en su Mac. Si no, hazlo

  • Abre el terminal y escribe por defaults write com.apple.Finder AppleShowAllFiles TRUE
  • killall Finder

Próximos pasos:

  • Ir a Users/user_name/.ssh/ eliminó todos los files.
  • Tipo de terminal de apertura en ssh-keygen -t dsa
  • Luego, heroku keys:add ~/.ssh/id_dsa.pub

Nota: lo hice en Mac OSX 10.7.2 Lion. Aunque el procedimiento debería ser el mismo en otros también.

Tengo este problema también. Estoy usando Mac OSX. La forma en que lo arreglé fue para iniciar session como administrador

sudo su

contraseña

La solución de dmajkic me ayudó al fin:

Para los usuarios de Windows, puede significar: el cliente de git no pudo encontrar sus llaves. Compruebe las keys en c: \ Users \ UserName.ssh \ y! variable de entorno HOME = c: \ Users \ UserName \

Esto es lo que funcionó para mí. El sitio heroku no se está agregando a sus hosts conocidos. Vaya a window-other- show view-git-git repositories. Desde allí, cloné el repository. Una vez que lo haya clonado, elimine el repository que acaba de crear y luego impórtelo desde el menu de files. Haga esto ya que cuando clona el repository, no lo agrega a la vista del explorador. Ahora debería tener el repository git y la vista del explorador.