tipos tag repositorio remove qué existen etiquetas crear commits cambiar git ssh github ssh-keys

tag - qué tipos de etiquetas existen en git



Gestión de claves públicas ssh en repositorios de organizaciones github (4)

Me preguntaba si alguien tiene una forma buena, limpia y segura de administrar el acceso al repositorio de la organización github en sus servidores.

Parece que solo puede adjuntar claves de publicación a su cuenta personal y no puede restringir el acceso únicamente a una organización.

Tenemos un servidor beta donde colocamos varios proyectos para implementar claves, ya que tienen que ser únicas, no son ideales. Sería bueno darle acceso global a la organización, pero no quiero darle al servidor, que tenemos freelancers, acceso completo a mi cuenta personal (el servidor obtiene acceso a la organización, lo cual es bueno, pero también a mis proyectos personales y a cualquier otra organización a la que pertenezco, lo cual es malo).

Las dos soluciones alternativas que veo son configurar un usuario de github ficticio para que lo haga, lo que parece estúpido, o habilitar el reenvío del agente ssh, que parece un riesgo de seguridad (no soy el mejor administrador de servidor).

Un amigo sugirió configurar el servidor como un control remoto, pero parece una solución de curita.

Me gustaría pensar que hay una forma más fácil de configurar el acceso para el repositorio de una organización, ya que creo que sería una necesidad fundamental para todos.

Soy todo oídos si alguien quisiera compartir algo que tiene / está funcionando para su organización Github.

Probablemente morderé la bala y crearé un usuario de github ficticio y lo llamaré un día, necesito hacer el trabajo.


No entiendo por qué agregar una cuenta ficticia es tan malo para la implementación automática, siempre y cuando ejecute su propio servidor beta como área de preparación antes de ingresar a GitHub. Es decir, si quieres que el betacode sea privado.

La forma habitual de GitHub sería agregar a todos los colaboradores y simplemente tener un proyecto estable y una bifurcación beta. Llevaría automáticamente la versión beta actual a su servidor beta para su prueba (no se necesita una clave ssh) y si sus pruebas tienen éxito, arrastre las fusiones de la bifurcación beta al proyecto estable.


Pequeña nota sobre el CI:
Por ejemplo, si usa Jenkins y lo necesita para acceder a más de 1 proyecto, necesitará:
1. agregar clave pública a una cuenta de usuario github
2. agregue este usuario como Propietario (para acceder a todos los proyectos) o como Colaborador en cada proyecto.

Muchas claves públicas para un usuario del sistema no funcionarán porque GitHub encontrará la primera clave de implementación coincidente y devolverá un error como "ERROR: Permiso al usuario / repo2 denegado al usuario / repo1"

http://help.github.com/ssh-issues/


Puede solucionar esto haciendo que sus aplicaciones sean ejecutadas por diferentes usuarios (un usuario por aplicación). Me refiero a los usuarios del servidor, no a los usuarios github. Es una buena práctica de todos modos en servidores de múltiples aplicaciones.

Cada usuario tiene su propio par de llaves ssh, por lo que tiene muchas claves de implementación únicas (una por repositorio de github).

Yo uso este enfoque siempre que sea posible. Sin embargo, hay situaciones en las que más de una aplicación es ejecutada por un solo usuario y probablemente no se puede hacer con las claves de implementación de github. También estoy buscando una buena solución para estos casos.


Una alternativa a la respuesta de sergey_mo (y como respuesta directa a la pregunta final de Michał Szajbe) es crear múltiples claves ssh como lo documenta Chalien en githib:

https://gist.github.com/jexchan/2351996