servidor GIT com autenticação de nome de usuário e senha

3

Eu gostaria de definir um servidor GIT e permitir que meus desenvolvedores façam login usando o nome de usuário e a senha para confirmar e fazer alterações nos projetos. Eu preciso também gerenciar o acesso do desenvolvedor aos projetos (acho que eu deveria usar o gitolite para isso).

Como posso fazer isso?

Estou acostumado com o SVN, que é fácil porque você pode definir o nome de usuário e a senha para cada desenvolvedor, que pode acessar facilmente o repositório sem ter que gerar uma chave ssh e colocá-la no servidor.

Obrigado

    
por Giorgio 08.06.2014 / 09:36

4 respostas

2

Talvez você não esteja ciente disso, mas o Git é um VCS distribuído. Isso é essencial para sua compreensão. OTOH SVN e CVS são centralizados. Você ainda pode ter um repositório central no Git e, se fizer isso, seus usuários precisarão ser capazes de efetuar login nesse servidor usando o acesso SSH ou HTTP, procure por ele. De um modo geral, o Git depende da autenticação do servidor.

Então, para fazer um repositório git em um servidor Debian ou Ubuntu para uso centralizado:

# apt-get install git
# cd /var/git
# git init --bare myreponame.git
# adduser <username>    as needed

Neste ponto, você tem um repo vazio. Para cloná-lo em seu desktop Debian ou Ubuntu:

Para conexões SSH: procure o ssh keygen e configure uma conexão sem senha para seu servidor keygen e o compartilhamento é apenas dois comandos.

Para clonar um repositório:

$ git clone <server>:/var/git/myreponame.git

$ cd myreponame

Agora você pode adicionar arquivos e diretórios ... quando você usou git add e git commit, você pode usar o git push para enviar commits para o repo central.

  • Existem repositórios não-nus, você deve ler sobre isso, use as referências padrão do Git, apenas o Google.
  • Aviso de que um "repositório compartilhado" não é o que você acha do nome.
por 10.06.2014 / 01:59
0

gitolite usa autenticação de chave pública e FWIW, você não precisa gerar pares de chaves de todos. Basta pedir-lhes a chave pública.

A configuração em gitolite é apenas outro repositório, você só precisa conceder acesso e adicionar as chaves públicas de acordo.

    
por 08.06.2014 / 13:06
0

I would like to set a GIT server and let my developers to login using username and password in order to commit and make changes to the projects. I need also to manage developer access to projects

Eu sugiro usar o GitLab Community Edition. Como tem todos os recursos que você precisa e muito mais.

I am used to SVN which is easy because you can set username and password for each developer, which can easily access the repository without having the generate an ssh key and put it on the server.

na verdade, a chave ssh é muito confortável, porque você não precisa digitar login / senha toda vez que quiser clonar / puxar / empurrar / etc.

De qualquer forma com o gitlab você pode usar login / senha e / ou chave ssh.

    
por 08.06.2014 / 15:17
0

Se você quiser autenticação de senha via SSH e autorização via Gitolite, você pode facilmente fazer isso.

Basicamente, o que você faz é criar uma conta para cada usuário e colocá-los em um grupo, ou aplicar o seguinte Match a todos os usuários e fazer exceções para aqueles que devem ser capazes de efetuar login. Por exemplo, suponho que você inclui todos os usuários do git no grupo git-users , o nome do host é git , o Gitolite está operando como usuário git e o Gitolite está instalado em /opt/gitolite . Se alguma coisa não for verdade, apenas adapte as instruções

Em /etc/ssh/sshd_config você teria

Match Group git-users
    X11Forwarding no
    AllowTcpForwarding no
    AllowAgentForwarding no
    PermitTTY no
    ForceCommand sudo -u git -H /opt/gitolite/src/gitolite-shell $USER

para dar controle ao Gitolite se um usuário se conectar e dizer qual usuário é.

E que este comando sudo funciona sem senha você faz visudo e lá no arquivo sudoers adiciona

Defaults!/opt/gitolite/src/gitolite-shell       env_keep+=SSH_CONNECTION
Defaults!/opt/gitolite/src/gitolite-shell       env_keep+=SSH_ORIGINAL_COMMAND

para encaminhar as variáveis de ambiente SSH_CONNECTION e SSH_ORIGINAL_COMMAND que o Gitolite precisa para funcionar corretamente e

%git-users      git = (git) NOPASSWD: /opt/gitolite/src/gitolite-shell

que diz para que todos os usuários no grupo git-users tenham permissão para executar no host chamado git como usuário git sem especificar uma senha, o comando /opt/gitolite/src/gitolite-shell .

    
por 04.08.2018 / 01:08

Tags