Olá, estou usando o git há algum tempo, mas sou novo no git corporativo. aqui está o que fiz com o meu test-repo
, criei um par de chaves ssh e adicionei a chave pública ao meu repositório de teste como chave de implantação. Agora posso clonar meu test-repo
de ssh
e, https
no entanto, quando adiciono alguém como colaborador, eles podem clonar o repositório, https
mas não dessh
ssh-keygen -b 4096 -t rsa -f example_rsa -P "" -C ""
$ ls
example_rsa example_rsa.pub
$ git clone [email protected]:star/test-repo.git
Cloning into 'test-repo'...
Warning: Permanently added the ECDSA host key for IP address '10.0.1.100' to the list of known hosts.
warning: You appear to have cloned an empty repository.
O mesmo repositório git não pode ser acessado pelo usuário, mesmo após conceder acesso via ssh, no entanto, o usuário pode clonar o repositório git usando https
.
git clone [email protected]:star/test-repo.git
Cloning into 'test-repo'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
git clone https://git.example-private.com/star/test-repo.git
Cloning into 'test-repo'...
warning: You appear to have cloned an empty repository.
O Git usa vários protocolos para comunicação cliente-servidor:
Quando você decide usar
ssh
para seu servidor git, você precisa fornecer acesso ssh relevante para os colaboradores que irão trabalhar com seus repositórios. Existem muitas soluções para facilitar o gerenciamento - gitlab (também possui GUI), gitolite e muitos outros. O Git ainda vem com umgit-shell
- se você configurá-lo para um usuário recém-criado, ele só poderá trabalhar com o git, e não com o ssh no servidor. Usarssh
é mais seguro e é a melhor solução (minha opinião) para ambientes corporativos.Ao usar https para protocolo de transporte, você obtém as vantagens (ou limitações) de https. É mais comumente usado quando você tem uma interface web para seu servidor git (por exemplo, cgit) e permite aos usuários clonar repositórios (mas não fazer push).
Dê uma olhada nisso - uma explicação detalhada sobre os protocolos usados no Git.