Pregunta Permiso denegado (clave 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 comando:

git push heroku master

pero recibe el siguiente error:

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

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


832


origen


Respuestas:


Tienes que subir tu clave pública a Heroku:

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

Si no tiene una clave 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 claves anteriores, haga lo siguiente:

heroku keys:clear

Para mostrar todas sus claves existentes, haga lo siguiente:

heroku keys

EDITAR:

Lo anterior no pareció funcionar para mí. Me había metido con el HOME variable de entorno y, por lo tanto, SSH estaba buscando claves en el directorio incorrecto.

Para garantizar que SSH compruebe la clave en el directorio 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 claves en el /c/Wrong/Directory/.ssh directorio que no es donde tenemos las claves públicas que acabamos de agregar a heroku (usando heroku keys:add ~/.ssh/id_rsa.pub ) ( Tenga en cuenta que en Windows OS ~ se refiere a HOME camino que en ganar 7/8 es C:\Users\UserName )

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

Para configurar tu HOME directorio correctamente (correctamente me refiero al directorio principal de .ssh directorio, para que ssh pueda buscar claves en el directorio correcto) consulte estos enlaces:

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

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


1449



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 clave, debe agregarla, como tal

$ ssh-add

y a heroku

->heroku keys:add "id_rsa.pub"

cambiar el directorio 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 archivos a continuación, pero no estoy seguro de que sean imp,

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


144



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 archivo ~ / .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

89



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


62



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

heroku keys:clear
heroku keys:add

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


34



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

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

Espero que esto ayude.


31



Esta fue la solución para mí:

ssh-add ~/.ssh/my_heroku_key_rsa

29



Para compartir mi experiencia:

Git (mi propia instalación) estaba buscando la clave llamada 'id_rsa'.

Así que traté de cambiar el nombre de mis claves 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.


15



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

 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 i.e., ~/.ssh/id_rsa is uploaded
 git push heroku

Esto debería funcionar.


11



Me suicidé durante 3 días probando todas las combinaciones posibles para intentar que esto funcione, finalmente intenté DSA clave en su lugar 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)


7