¿Cuáles son los pros y los contras de SSH y HTTP para un servidor git?

24

Quiero configurar un servidor git. He encontrado varios procedimientos, bien detallados.

Algunos describen la instalación de un servidor git accesible a través de Ssh, mientras que otros, accesibles a través de HTTP. (Otros incluso aconsejan herramientas como la gitolita).

¿Hay ventajas o desventajas al elegir SSH o HTTP? Parece que por HTTP, la transferencia de archivos es significativamente más lenta, pero me pregunto si hay otras cosas a tener en cuenta.

¿Cuál es la forma más común de configurar un servidor git, si lo hay?

Stephane Rolland
fuente

Respuestas:

23

Si bien pregunta cuál es la forma más común, creo que es mejor observar su situación y recordar que un protocolo no excluye a otro : agregue más protocolos de acceso más adelante si los necesita.

  • Lo más eficiente y rápido es usar el demonio Git nativo. Sin embargo, se ofrecen pequeñas características: sin cifrado, sin autenticación. Ideal para espejos públicos de solo lectura de sus repositorios. Si necesita rendimiento, también considere instalar una versión reciente en lugar de la versión incluida con su sistema operativo.

  • La forma más compatible es HTTP. Menos eficiente que el Git nativo, pero tampoco es una gran diferencia. El profesional más importante de HTTP es la penetración de firewall y el soporte de proxy. Aparece como otro tráfico HTTP normal para la mayoría de las puertas de enlace / firewalls.

  • Más seguro es HTTPS, pero inevitablemente menos eficiente también. Requiere bastante configuración. También necesitará un certificado TLS de confianza.

  • Seguridad similar, pero una forma más común es usar SSH. Es el valor predeterminado si no se especifica ningún protocolo en la línea de comando. Desarrollado por SSH, proporciona cifrado seguro y autenticación con contraseña y clave. Si bien no es convencional, también es posible permitir el acceso anónimo de esta manera.

Mi consejo dependerá del caso de uso de sus repositorios:

  • repositorios privados y pequeño grupo de usuarios: SSH

  • repositorios públicos, cualquier cantidad de clones, pero un pequeño grupo de usuarios con privilegios push: HTTP y Git (solo búsqueda) + SSH (+ acceso push)

  • cualquiera de los anteriores, pero con una gran cantidad de usuarios con privilegios de inserción: probablemente no entiendas la filosofía de Git.

Algunas redes públicas o corporativas pueden bloquear el tráfico Git y SSH. Si realmente necesita acceder a sus repositorios desde cualquier lugar , considere usar HTTPS y SSH.

gertvdijk
fuente
Puede obtener certificados TLS gratuitos para HTTPS en startssl.com. Con la confianza de todos los principales sistemas operativos / navegadores.
WhyNotHugo
2
O letsencrypt.org
Tereza Tomcova
2

Puede usar HTTPS para acceso de solo lectura, si sus repositorios son públicos, ya que es fácil de usar en el lado del cliente. Si no, solo debe usar SSH. En cualquier caso, debe usar SSH para el acceso de escritura, ya que tiene una mejor gestión de autenticación.

Christopher Perrin
fuente
oh, entonces es posible mezclar los dos? SSH para acceso de escritura y lectura, y Https para acceso fácil de solo lectura?
Stephane Rolland
Sí lo es. No debería ser un gran problema.
Christopher Perrin