No se puede empujar con EGit y Bitbucket

He intentado comenzar un proyecto usando EGit con Bitbucket pero no puedo enviar el proyecto al repository en el server.

Estos son los pasos que he seguido (intentaré ser muy específico para que otras personas puedan usarlo como modo de tutorial, aunque no funcione para mí podría funcionar para otros):

1) Instalé Git en Ubuntu 12.10 usando este tutorial

2) Seguí este tutorial para GitHub.

  • Comience un nuevo proyecto de C ++ en Eclipse
  • En Ventana> Preferences> General> Conexión de networking> SSH2> pestaña Gestión de keys, generé una nueva key RSA y la agregué a la list de keys de implementación de mi repository en Bitbucket.
  • Haga clic derecho sobre el proyecto eclipse: Equipo> Compartir proyecto; Equipo> Agregar al índice; Equipo> Comprometerse
  • Ventana> Mostrar vista> Otro> Git> Repositorios Git
  • Haga clic con el button derecho en Remotos> Crear remoto> Marcado "Configurar inserción" y escriba el nombre de mi proyecto
  • Agregar URL de inserción: ssh://git@bitbucket.org/myuser/myrepository.git , Protocol: ssh; puerto: blanco; usuario: git; contraseña: en blanco
  • Botón Avanzado debajo de las asignaciones de Ref y seleccionado la versión "maestra". Si este paso funciona, significa que la key RSA está configurada en Bitbucket y EGit correctamente. De lo contrario, mostrará un error de connection.

Todo está hecho. Sin embargo, cuando presiono "Empujar" recibo el siguiente error:

 ssh://git@bitbucket.org/myuser/myrepository.git: push not permitted 

Probé todas las configuraciones posibles: cambié a un nuevo espacio de trabajo, actualicé Eclipse, creé nuevos repositorys, volví a instalar Git … ¿Alguna idea?

Bien, finalmente encontré la manera de trabajar con eso.

Solo está cambiando el modo de authentication. Si se usa el enlace HTTPS, en lugar de usar el enlace SSH, todo funciona perfectamente. Parece que SSH funciona solo en modo de solo lectura.

Selección SSH / HTTPS

Por supuesto, el método de authentication es diferente: debe escribir la contraseña y las keys SSH almacenadas en Bitbucket ya no son necesarias.

Para aquellos que están teniendo problemas con EGit, recomiendo seguir la forma de eugener de configurar automáticamente EGit. Luego solo tiene que seleccionar HTTPS como modo de authentication para enviar las confirmaciones almacenadas.

Hay much simpler way de configurar repositorys Git remotos en Eclipse:

  1. Crea un repository vacío en BitBicket
  2. Copiar la URL del repository
  3. Clone repo a su máquina usando la vista "Git Repositories".
  4. Comparte tu proyecto en un repository recién clonado.

Desde que se clonó un repository, la configuration remota se configuró automáticamente. Esto significa que podrá presionar inmediatamente

Puede ser una configuration incorrecta de nombre de usuario en .gitconfig .

Probablemente relacionado, arreglé los problemas de "auth fail" siguiendo las instrucciones en: http://wangpidong.blogspot.com.es/2012/05/how-to-use-bitbucket-with-egit-in.html

Obtenido de: Configurando egit con BitBucket

En este caso específico, estoy de acuerdo con la resolución del comentario de Olivier J. en la pregunta original.

Pero he tenido un problema similar y fue causado por otra cosa. Lo resolví y aquí está lo que sucedió:

  1. He estado usando algún repository privado en Bitbucket (A) con alguna count de usuario y alguna key pública (X) para acceder a él. He cargado la key X en el llavero Masilla de mi pageant .

  2. Luego creé un nuevo repository público (B), también en Bitbucket con una count de usuario diferente y otra key pública (Y). Agregué esta key al pageant también.

  3. Cuando intenté acceder al repository B aparentemente se utilizó la key pública X y no Y, porque … para el cliente SSH ambas conexiones son las mismas: ¡el mismo usuario (git) en el mismo server (bitbucket.org)! Y la tecla X se usó primero porque … ¿se cargó antes? O tal vez porque su nombre era alfabéticamente primero? No estoy seguro, pero el resultado fue que …

  4. El acceso de solo lectura para B usando X fue otorgado porque el repository era público y cualquier key de usuario de Bitbucket válida era suficiente para get este tipo de acceso.

  5. … pero escribir (presionar) requería la tecla Y, que no fue utilizada por SSH.

Por lo tanto, el consejo general es: para resolver el extraño git de solo lectura a través de los errores de acceso SSH, compruebe con cuidado qué key privada realmente usa SSH .

Resolví este problema cargando solo una key, X o Y, en el pageant a la vez, pero me encantaría hacerlo de una forma más inteligente. Por favor, háganmelo saber si sabe cómo hacerlo.

Usando Bitbucket lo hago de esta manera:

  1. crear un repository en bitbucket
  2. clonar el repository vacío usando la URL https
  3. conecta el proyecto en eclipse al repository usando la opción Equipo -> Compartir y selecciona la location donde clonaste el repository
  4. index (stage) tus files de proyecto
  5. comprometerse y empujar