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:
SO Responda cómo establecer la variable de entorno Unix permanentemente
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:
antes de enloquecer demasiado.
La respuesta dada anteriormente SÍ funciona, pero descubrí que necesitaba hacer algunos pasos adicionales antes de que funcionara.
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:
~/.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
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 .
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
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:
know_host
y know_host
) en .ssh/ folder
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
defaults write com.apple.Finder AppleShowAllFiles TRUE
killall Finder
Próximos pasos:
Users/user_name/.ssh/
eliminó todos los files. ssh-keygen -t dsa
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.