Soy nuevo en Rails y estaba tratando de implementar una aplicación muy simple en Heroku. Esta es la segunda aplicación que implemento, y la primera que pude hacerlo bien. Sin embargo, estoy teniendo algunos problemas con este. Cada vez que " git push heroku master ", aparece este error:
! Su clave con huella digital xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx no está autorizado para> acceder a my_heroku_app.
fatal: el extremo remoto colgó inesperadamente
Intenté administrar mis claves después de iniciar sesión en heroku. Si escribo en mi consola " heroku keys ", entonces obtengo:
No hay claves para mi dirección.
Sin embargo, si ejecuto el comando " heroku keys: add " obtengo
Clave pública existente encontrada: /Users/michele/.ssh/id_rsa.pub ¡Carga de clave pública ssh /Users/michele/.ssh/id_rsa.pub! La huella digital ya existe. Utilice una clave ssh por cuenta de Heroku
¡Por favor, ayúdame! Esto es muy frustrante, ¡no tengo idea de lo que está mal! Gracias
heroku logout
, inicié sesión en la otra cuenta y eliminé la clave RSA predeterminada de esa cuenta. Después de eso pude presionar con esta clave recién generada.ssh-add ~/.ssh/id_rsa_heroku
aunque el mío fuessh-add ~/.ssh/identity.heroku.foo
porque también estoy usando https://github.com/ddollar/heroku-accounts (un administrador de cuentas múltiples para Heroku).Yo también tengo múltiples claves y múltiples cuentas heroku, así que me encuentro con este problema cada pocos meses. Como se mencionó a Giordano Scalzo, Tom Carchrae y user664833, el problema principal es ssh-agent, que usted controla mediante el
ssh-add
comando. La página man (man ssh-add
) es bastante clara y concisa, así que échale un vistazo.Puede enumerar todas las claves que conoce ssh-agent con:
Puede eliminar todas las claves que ssh-agent conoce con:
O elimine una clave específica con
No te preocupes En realidad, no está eliminando las claves, solo cambiando las que ssh-agent intenta usar automáticamente, por ejemplo, cuando intenta empujar a heroku. Es fácil agregar y eliminar claves según sea necesario, por lo que para mí, cuando me siento frustrado por este problema, la forma más fácil de solucionarlo es eliminar todas las claves y volver a agregar solo la que quiero usar en este momento.
fuente
Su computadora tiene una clave SSH, pero esa clave SSH está asociada con otra cuenta de Heroku.
Si necesita usar ambas cuentas para diferentes aplicaciones en la misma computadora, debe hacer una nueva clave SSH en su máquina y cargarla en Heroku:
Asegúrese de guardarlo como '/Users/User/.ssh/new_id_rsa.pub' cuando el mensaje le pregunte.
Luego debe agregar un host alternativo para
heroku.com
su~/.ssh/config
:Y luego actualice el
.git/config
en su proyecto para usar el alias de host:Al elegir entre
heroku
yheroku-alt
en el control remoto de los.git/config
archivos de proyectos específicos, puede administrar qué proyectos usan qué credenciales.fuente
Host heroku-alt not found: 3(NXDOMAIN)
. Estoy poniendo esto en la terminal de Mountain Lion.~/.ssh/config
tampoco existe, solo un montón de.pub
archivos y uno llamadoknown_hosts
. ¿Y las ideas?Host
,HostName
y lasIdentityFile
líneas. Entonces debería funcionar bien.Aquí hay una explicación muy clara que falta en la documentación de Heroku u otras respuestas a la pregunta. Al menos toda la información no parece aparecer en ningún lugar. También le permite comprender el problema de una manera que la herramienta de cuentas no lo hace.
Heroku te identifica de 2 maneras:
El primero está en .git / config
Esto parece permitirle realizar operaciones básicas usando
heroku
La segunda forma en que heroku te identifica es mediante cualquier operación que use ssh (git push). Heroku lo identificará con su clave ssh, como se indica aquí: https://devcenter.heroku.com/articles/keys
Por lo tanto, cada cuenta de heroku en la que trabaje tendrá que enviar una clave diferente a heroku cuando use ssh. Sigue cualquier tutorial para crear tus claves ssh.
La clave es hacer que SSH use diferentes claves para cada cuenta de Heroku. ¿Cómo se configura esto? Tendrás que hacer 2 cosas:
1) Tendrá que crear un dominio 'ficticio' que su .ssh / config interceptará y reconfigurará. Esto le dirá a ssh el dominio 'real' que desea y qué clave ssh especial usar.
2) Cambie su .git / config para usar eso cuando use git push. En lugar de heroku.com, use el dominio ficticio que configuró en su .ssh / config
Eso es todo :) Un poco complicado y un poco simple al mismo tiempo. Me ha llevado 3 años golpear mi cabeza contra la pared y probar y error descubrir esta información. Debería estar claramente documentado en alguna parte, pero al menos es un comienzo.
fuente
necesitará crear nuevas claves y agregarlas
especificar un nuevo nombre de archivo después de ejecutar
entonces (en mi caso)
fuente
Tengo el mismo problema la semana pasada. Este enlace me ayudó. Espero que te ayude un poco. http://devcenter.heroku.com/articles/keys
fuente
En mi caso,
heroku keys
ya tenía la clave correcta en la lista. Entonces, todo lo que tenía que hacer era correrssh-add /path/to/that/key
y luego todo comenzó a funcionar bien.fuente
También tengo dos cuentas de Heorku y, como solución alternativa, "invité" a mi cuenta principal (la que Heroku usa automáticamente la clave) como colaboradora de mi proyecto.
fuente
Solo quiero agregar la solución para usuarios de Windows.
Primera descarga "Generador de Putty Key"
Cree una clave con el OBS que necesita para mover el mouse sobre el área en blanco para generar aleatoriedad.
Guarde sus claves, solo recuerde cambiar el nombre de su clave a [nombre] .pub
¡Corre
heroku keys:add
en la terminal!fuente
En mi caso, el problema era la versión ssh que estaba usando. Acabo de establecer la variable de entorno GIT_SSH en otra ("GIT_SSH = / usr / bin / ssh") y todo funcionó bien para mí.
fuente