Quais são os prós e os contras do SSH e HTTP para um servidor git?

23

Eu quero configurar um servidor git. Encontrei várias instruções, bem detalhadas.

Alguns descrevem a instalação para um servidor git acessível através do Ssh, enquanto outros, acessíveis através do HTTP. (Outros até aconselham ferramentas como gitólito).

Existem prós ou contras escolhendo SSH ou HTTP? Parece que, por HTTP, a transferência de arquivos é significativamente mais lenta, mas me pergunto se há outras coisas a serem lembradas.

Qual é a maneira mais comum de configurar um servidor git, se houver?

Stephane Rolland
fonte

Respostas:

22

Enquanto você está perguntando qual é a maneira mais comum, acho melhor analisar sua situação e lembrar que um protocolo não exclui outro - adicione mais protocolo de acesso mais tarde, se precisar.

  • O mais eficiente e rápido é usar o daemon Git nativo. No entanto, poucos recursos oferecidos: sem criptografia, sem autenticação. Ideal para espelhos públicos somente leitura dos seus repositórios. Se você precisar de desempenho, considere também instalar uma versão recente em vez da versão fornecida com o sistema operacional.

  • A maneira mais compatível é o HTTP. Menos eficiente que o Git nativo, mas também não faz muita diferença. O profissional mais importante do HTTP é a penetração de firewall e o suporte a proxy. Ele aparece como outro tráfego HTTP regular para a maioria dos gateways / firewalls.

  • Mais seguro é o HTTPS, mas inevitavelmente menos eficiente também. Requer algumas configurações. Você também precisará de um certificado TLS confiável.

  • Segurança semelhante, mas uma maneira mais comum é usar o SSH. É o padrão se nenhum protocolo for especificado na linha de comandos. Com tecnologia SSH, ele fornece criptografia forte e autenticação de senha e chave. Embora não seja convencional, também é possível permitir o acesso anônimo.

Meu conselho dependeria do caso de uso de seus repositórios:

  • repositórios particulares e pequeno grupo de usuários: SSH

  • repositórios públicos, qualquer quantidade de clones, mas pequeno grupo de usuários com privilégios de envio: HTTP e Git (somente busca) + SSH (+ acesso por envio)

  • qualquer uma das opções acima, mas com uma grande quantidade de usuários com privilégios de envio: você provavelmente não entende a filosofia do Git.

Algumas redes públicas ou corporativas podem bloquear o tráfego Git e SSH. Se você realmente precisar acessar seus repositórios de qualquer lugar , considere usar HTTPS e SSH.

gertvdijk
fonte
Você pode obter certificados TLS gratuitos para HTTPS em winssl.com. Confiável por todos os principais sistemas operacionais / navegadores.
WhyNotHugo
2
Ou letsencrypt.org
Tereza Tomcova
2

Você pode usar HTTPS para acesso somente leitura, se seus repositórios forem públicos, pois é fácil de usar no lado do cliente. Caso contrário, você deve usar apenas SSH. De qualquer forma, você deve usar o SSH para acesso de gravação, pois possui um melhor gerenciamento de autenticação.

Christopher Perrin
fonte
ah, então é possível misturar os dois? SSH para acesso de gravação e leitura e Https para fácil acesso somente leitura?
Stephane Rolland
Sim. Não deve ser um grande problema.
Christopher Perrin