2012-05-15 10 views
6

Tengo un proyecto (repositorio privado) que tiene múltiples submódulos (también privado). Tengo un servidor alojado en Amazon EC2 que albergará el proyecto, y quiero usar nuestro repositorio privado de Github.Permiso de error denegado al usar las teclas de implementación de Github

Genere una clave ssh para el proyecto principal y la agregué a las teclas de implementación de proyectos. También generé claves ssh adicionales para cada submódulo y las agregué a sus claves de implementación.

Cuando intento y clonar el proyecto (usando git @ github), que no funciona:

Permiso denegado (publickey). fatal: el extremo remoto colgó inesperadamente

He comprobado dos veces cada repositorio y sus teclas de implementación y todo parece correcto. ¿Hay algún otro pequeño paso que me falta?

+0

¿Está abierto el puerto 22? ¿Qué dice 'ssh -vT git @ github.com'? - http://help.github.com/ssh-issues/ –

+0

Aquí están los resultados (abajo) –

+0

OpenSSH_5.3p1, OpenSSL 1.0.0i-fips 19 abr 2012 debug1: Lectura de datos de configuración/etc/ssh/ssh_config debug1 : Aplicación de opciones para * debug1: conexión con github.com [207.97.227.239] puerto 22. debug1: conexión establecida. –

Respuesta

6

Respuesta breve: no hay una manera fácil de usar las teclas de despliegue con submódulos privados. En mi experiencia, tiene dos opciones:

  1. seguir usando submódulos pero dejar de usar desplegar teclas y en lugar de utilizar una clave única cuenta de nivel de SSH que permite el acceso a todos sus repositorios privados (más fácil, menos seguro)
  2. parada utilizando submódulos, siga usando desplegar claves, y de forma manual git clone cada repositorio que pasa en la clave privada SSH que coincide con la clave de despliegue (más complicado, más seguro)

la razón de esto es git clone desencadena una conexión SSH que sólo se puede utilizar una sola clave privada SSH en un tiempo (p. ~/.ssh/id_rsa). La clave privada SSH que se utiliza debe coincidir con la clave de implementación del repositorio, y las claves de implementación deben ser únicas por proyecto. En el caso de un clon de submódulo, solo está usando una sola clave privada. Esa clave puede coincidir con su proyecto de nivel superior, pero seguramente fallará en los proyectos secundarios con el error que proporcionó.

Espero que esto sea útil ..

+1

A partir de 2 años después todavía no hay una solución mejor? – aledalgrande

+3

OK, lo encontré: https://github.com/blog/1270-easier-builds-and-deployments-using-git-over-https-and-oauth – aledalgrande

Cuestiones relacionadas