git asegúrese - Permiso denegado(publickey)al implementar el código heroku.fatal:el extremo remoto colgó inesperadamente




por com (25)

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

git push heroku master

pero recibe el siguiente error:

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

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


Answers

Este problema estuvo jugando conmigo durante unos días.

Esto podría ayudar.

1) Averigua qué llaves tienes en Heroku ahora.

$ heroku keys
=== 1 key for [email protected]
ssh-dss AAAAB8NzaC...DVj3R4Ww== [email protected]

2) Construye un archivo ~ / .ssh / config:

$ sudo vim ~/.ssh/config

Editar 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 [email protected]

Para compartir mi experiencia:

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

Así que intenté cambiar el nombre de mis claves a 'id_rsa' e 'id_rsa.pub' y funcionó.

Por cierto, estoy seguro de que hay otra forma de hacerlo pero aún no he visto más.


Al principio, asegúrese de que los archivos ocultos estén visibles en su Mac. Si no es así:

  • Abra el terminal y escriba los defaults write com.apple.Finder AppleShowAllFiles TRUE
  • killall Finder

Próximos pasos:

  • Ir a Users/user_name/.ssh/ eliminó todos los archivos.
  • Abrir el tipo de terminal en ssh-keygen -t dsa
  • Luego heroku keys:add ~/.ssh/id_dsa.pub

NB lo hice en Mac OSX 10.7.2 Lion. Aunque el procedimiento debe ser igual en otros también.


Tuve el mismo problema, los pasos a continuación funcionaron para mí,

->heroku login

[email protected] y contraseña

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

->ssh-keygen -t rsa -f id_rsa

Si solicita alguna frase de contraseña, no la use en blanco, llénela con una frase de contraseña, pero no la olvide.

Después de generar la clave necesitas agregarla, así.

$ ssh-add

y eso a heroku

->heroku keys:add "id_rsa.pub"

cambiar directorio a espacio de trabajo, que

->git clone [email protected]:stark-dawn-1234.git -o heroku

use la frase de contraseña que estableció anteriormente.

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

C: \ Users \ yourusername.heroku \ credientals y C: \ Users \ yourusername.ssh \ known_hosts


La solución de dmajkic me ayuda al fin:

Para los usuarios de Windows puede significar que: git client no pudo encontrar sus claves. Compruebe las claves en c: \ Users \ UserName.ssh \ y! variable de entorno HOME = c: \ Users \ UserName \



Parece que su archivo ~/.ssh/authorized_keys no está configurado correctamente. Verificalo:

  • Está en el camino correcto.
  • Los permisos del archivo son 0600.
  • Los permisos de ~/.ssh son 0700.

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

sudo su

contraseña


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

  1. Eliminé todos los archivos id_rsa * y generé un nuevo SSH usando help.github.com/mac-set-up-git guía.
  2. Entonces, destruí la aplicación heroku. Se eliminó el archivo ~ / .heroku / credentials.
  3. El comando 'heroku create' (y dado que el archivo de credenciales se elimina, le pedirá su correo electrónico / contraseña).
  4. FINALMENTE escriba 'heroku keys: add' y cargará el archivo predeterminado ~ / .ssh / id_rsa.pub.
  5. ¡Funciona! Bueno ... YMMV, pero realmente espero que esto pueda ser de ayuda, ya que luché todo el día intentando resolver esto. Jaja

Secuencia a seguir

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

Cuando se ejecuta la segunda instrucción, se solicitará una entrada, solo presione Entrar (retorno) tres veces y se agregará una tecla.


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

Host heroku.com
Hostname heroku.com 
Port 22 
IdentitiesOnly yes 
IdentityFile ~/.ssh/ssh-dss
TCPKeepAlive yes 
User [email protected]

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


Me maté durante 3 días intentando todas las combinaciones posibles para que esto funcionara. Finalmente intenté hacer una clave DSA y funcionó.

Prueba DSA en lugar de RSA si no te funciona.

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


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

  1. Primero, inicia sesión: heroku login
  2. Borrar todas las teclas: teclas heroku: borrar
  3. Elimine todos los archivos en la carpeta local (todos los archivos know_host y know_host ) en la .ssh/ folder
  4. Vuelva a iniciar sesión: inicio de sesión de Heroku: aparecerá un mensaje sin clave, así que siga las instrucciones en pantalla.

Empujar estaba trabajando para mí y luego se detuvo de repente.

Si el api de Heroku está experimentando un tiempo de inactividad, obtendrá este error cuando intente presionar.

Comprobar:

https://status.heroku.com/

antes de enloquecer demasiado duro.


En Windows 7,64 bit, la solución anterior (Onur Turhan's) funcionó para mí con pequeños cambios como se muestra a continuación

C:\Users\MyName > heroku login

Introduzca el correo electrónico / contraseña

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

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

heroku keys:add id_rsa.pub
git clone [email protected]:some-heiku-xxxx.git -o heroku

Supongo que agregar el archivo "id_rsa.pub" correcto es lo más importante. Después de generar la clave pública con keygen, verifique que está agregando la clave correcta mirando la marca de tiempo cuando se creó.


Si quieres usar "sudo", ejemplo:

sudo git clone [email protected] -o heroku

También debe generar la clave ssh para su usuario root.

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

y funcionará.

Si no usa un usuario root, genere la clave ssh en su directorio de usuarios.

cd /home/user/.ssh

Lo siento si mis oraciones en mal estado ...


Si eres usuario de Windows, las otras soluciones aquí probablemente no resolverán tu 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 presiona a heroku.

Espero que esto ayude.


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


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.


Esta fue la solución para mí:

ssh-add ~/.ssh/my_heroku_key_rsa

Solo quisiera agregar que el directorio no es necesariamente C: \ Users \ [nombre de usuario] \. Ssh. Es el directorio en el que creó su clave pública en.

Por ejemplo, mi directorio de inicio en Windows se cambió a C: \ [nombre de usuario]. Su directorio de inicio en una subcarpeta .ssh es el mejor y más probable lugar donde haya creado sus claves. Puedes verificar tu directorio de inicio en Windows con el comando:

    echo %HOMEPATH%

El problema al que me enfrenté estaba en Windows e invariablemente, cuando ejecutaba las "teclas heroku: agregar" seleccionaba las teclas github. Así que aquí están los pasos que seguí para resolver el problema

  1. fue al directorio .ssh en la carpeta "Document and Settings" y eliminó las claves de git hub
  2. ejecuta el comando heroku teclas: agregar

El comando anterior me solicitó que generara una clave nueva y la siguiente fue la salida. No se pudo encontrar una clave pública existente. ¿Te gustaría generar uno? [Yn] Y Generando nueva clave pública SSH. Cargar la clave pública de SSH C: / Documents and Settings / Admin / .ssh / id_rsa.pub ... ¡listo! La gema 'heroku' ha sido desaprobada y reemplazada por Heroku Toolbelt, descargue e instale desde https://toolbelt.heroku.com .

  1. ejecute nuevamente el comando heroku keys: add

El comando anterior no proporcionará la siguiente clave pública existente encontrada de salida: C: / Documents and Settings / Admin / .ssh / id_rsa.pub Cargar SSH clave pública C: / Documents and Settings / Admin / .ssh / id_rsa.pub .. . hecho

  1. Ahora usa el git push heroku master

Para mí, siguiendo los pasos anteriores, resolví el problema y pude implementar la aplicación en la nube.


Un solo comando funciona:

heroku keys:add

Hará uno si no existe.


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 funcione a la perfección. Solo usa:

heroku keys:add

Para borrar todas tus claves anteriores haz:

heroku keys:clear

Para visualizar todas tus llaves existentes haz:

heroku keys

EDITAR:

Lo anterior no parece funcionar para mí. Había perdido el tiempo con la variable de entorno HOME y, por lo tanto, SSH estaba buscando claves en el directorio incorrecto.

Para asegurarse de que SSH verifique la clave en el directorio correcto, haga lo siguiente:

ssh -vT [email protected]

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 directorio /c/Wrong/Directory/.ssh 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 el sistema operativo Windows ~ refiere a la ruta de heroku keys:add ~/.ssh/id_rsa.pub que en Windows heroku keys:add ~/.ssh/id_rsa.pub es C:\Users\UserName )

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

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

  1. Respuesta SO sobre cómo establecer la variable de entorno Unix de forma permanente

  2. SO Pregunta sobre ssh buscando claves en el directorio equivocado y una solución para el mismo.


De todos modos, estaba siguiendo mi flujo de trabajo en una rama reciente, y cuando intenté fusionarlo de nuevo para dominarlo, todo se fue al infierno. Hubo muchos conflictos con cosas que no deberían haber importado. Los conflictos simplemente no tenían sentido para mí. Me tomó un día ordenar todo, y finalmente culminó en un impulso forzado al maestro remoto, ya que mi maestro local ha resuelto todos los conflictos, pero el remoto aún no estaba contento.

En ninguno de sus compañeros ni en los flujos de trabajo sugeridos, si hubiera encontrado conflictos que no tuvieran sentido. Incluso si lo hubiera hecho, si está siguiendo los flujos de trabajo sugeridos, luego de la resolución no debería ser necesario un impulso 'forzado'. Sugiere que en realidad no ha fusionado la rama a la que estaba empujando, sino que tuvo que empujar una rama que no era un descendiente de la punta remota.

Creo que necesitas mirar cuidadosamente lo que pasó. ¿Podría alguien más (deliberadamente o no) rebobinar la rama maestra remota entre su creación de la rama local y el punto en el que intentó fusionarla de nuevo con la rama local?

En comparación con muchos otros sistemas de control de versiones, descubrí que el uso de Git implica luchar menos contra la herramienta y le permite trabajar en los problemas que son fundamentales para sus flujos de origen. Git no realiza magia, por lo que los cambios conflictivos causan conflictos, pero debería facilitar la escritura mediante el seguimiento de la parentesco de compromiso.





git heroku deployment public-key