Bloqueando o servidor git ssh

4

Eu gostaria de configurar um servidor git em ssh, com uma única conta SSH para o projeto. Todos os membros do projeto devem ter suas chaves ssh listadas em authorized_keys. O bloqueio deve restringir o acesso a apenas fazer coisas do git e somente dentro de um diretório dedicado.

Qual é a melhor maneira de criar essa configuração? Existe o git-shell, que aparentemente pode fazer o bloqueio apenas para fazer comandos git, mas não consigo descobrir como restringir o acesso a um único diretório. Existem também vários invólucros em Python e Ruby - em quais deles devo confiar?

    
por Martin v. Löwis 23.01.2010 / 23:18

2 respostas

4

você pode dar uma olhada em gitosis ou gitolite , gitolite é meio que melhor em relação à concessão de acesso e assim por diante aos repositórios, você não teria que se preocupar em dar os usuários acessam o servidor e o que não é

    
por 24.01.2010 / 00:26
2

Qual é o seu modelo de ameaça?

O bom rapaz destrói acidentalmente o repositório git ou outros dados: Certifique-se de que os seus utilizadores apenas podem escrever no seu homedir, tmp e no repositório git. Faça backup do repositório após cada confirmação e pratique procedimentos de recuperação regularmente.

Um cara mau rouba a chave privada de alguém e quer possuir o seu sistema: Sua superfície de ataque é limitada a partes do sshd protegidas por autenticação - e qualquer interface que você use, então reduza o tamanho possível . Os wrappers do Python / Ruby envolvem muito código e muito espaço para erros. Use o git-shell ou considere o uso das diretivas Match e ChrootDirectory em sshd_config para limitar quais partes do sistema de arquivos os usuários podem acessar.

Bad guy rouba a chave privada de alguém e obtém seu código-fonte: Ensine aos usuários como proteger suas chaves privadas e estabelecer procedimentos para revogar as chaves rapidamente (por exemplo, quem ligar às 4h para ter as chaves revogadas).

Não use .ssh/authorized_keys , em vez disso, use a palavra-chave AuthorizedKeyfile em sshd_config para especificar um caminho em que os usuários não têm acesso de gravação, por exemplo, %código%. É muito difícil garantir que os usuários nunca possam sobrescrever .ssh / authorized_keys com sua própria cópia.

Além disso, mantenha os arquivos-chave do usuário e o sshd_config controlados por versão para permitir auditorias.

    
por 24.01.2010 / 00:10

Tags