Bloqueando o servidor git ssh

Bloqueando o servidor git ssh

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

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

Responder1

você poderia dar uma olhadagitoseougitolita, o gitolite é melhor no que diz respeito à concessão de acesso e assim por diante aos repositórios, você não precisaria se preocupar em dar aos usuários acesso ao servidor e o que não

Responder2

Qual é o seu modelo de ameaça?

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

O bandido rouba a chave privada de alguém e quer ser dono do seu sistema:Sua superfície de ataque é limitada a partes do sshd protegidas por autenticação - e a qualquer interface de shell que você usar, portanto, torne-a o menor possível. Os wrappers Python/Ruby envolvem muito código e muito espaço para erros. Use o git-shell ou considere usar as diretivas Match e ChrootDirectory em sshd_config para limitar quais partes do sistema de arquivos os usuários podem acessar.

O bandido rouba a chave privada de alguém e obtém seu código-fonte:Ensine aos usuários como proteger suas chaves privadas e estabeleça procedimentos para revogar chaves rapidamente (por exemplo, para quem ligar às 4h da manhã para revogar as chaves).

Não use .ssh/authorized_keys, em vez disso use a AuthorizedKeyfilepalavra-chave em sshd_config para especificar um caminho onde os usuários não têm acesso de gravação, por exemplo /etc/ssh/keys/%u. É muito difícil garantir que os usuários nunca consigam substituir .ssh/authorized_keys por sua própria cópia.

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

informação relacionada