Estou tendo problemas para configurar restrições de IP com o Gitolite

3

Estou com problemas para configurar restrições de IP com o Gitolite. Pode ser algo simples e esta é a minha primeira vez usando (eu estou finalmente mudando de Gitosis porque não posso fazer o que eu preciso)

Basicamente, os sites dos meus clientes têm um reit git. Eu empurro para o repo e o post-receive hook vai para o site ao vivo dela ou dev dependendo de para onde eu for. De qualquer forma, a coisa é que um cliente quer acessar os arquivos em seu site, e eu estou bem com isso, mas porque ela terá acesso a sua chave SSH para seu repo em ~ / .ssh, ela terá acesso direto acesso ao repositório que eu não quero permitir fora do servidor web.

Esta é a parte relevante da minha configuração:

repo    example.com
        R VREF/FROM/127.0.0.1 = user

Isso funcionaria, exceto que o Gitolite está gerando um arquivo bad authorized_keys:

command="/usr/share/gitolite/gl-auth-command user",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ,from="127.0.0.1" ssh-rsa...

A questão é o espaço depois de não-pty. Remova o espaço e funciona bem. Mantenha o espaço e a chave é ignorada.

Qualquer ideia de como configurá-lo corretamente seria apreciada! Eu realmente não quero executar um sed no arquivo authorized_keys toda vez que eu mudar alguma coisa a menos que não haja outra maneira ...

Obrigado!

    
por Chelsea Urquhart 13.07.2014 / 05:44

2 respostas

1

O livro de receitas do gitolite " exemplo 2: restringindo pelo endereço IP de origem "mostra que este VREf não adiciona nada à chave autorizada.

E o VREF é melhor definir no gitolite V3 (ao invés do virtual refs no gitolite V2 ).

    
por 25.07.2014 / 08:42
1

Solução:

1 Faça triggers / ip-limit contendo

#!/bin/bash

#
# ip-limit
#

UnrestrictedUserName=Me
PermittedIP=127.0.0.1

if [ "$GL_USER" == "$UnrestrictedUserName" ] ; then
    exit 0;
fi
IP=$(echo $SSH_CLIENT | perl -pe 's/ .*//g');
if [ "$IP" != "$PermittedIP" ] ; then
    echo "You ($GL_USER) are not permitted from the IP ($IP)" >&2
    exit 1;
fi
exit 0

2 Instrua o gitolite para usá-lo:

chmod 0777 triggers/ip-limit
cp .gitolite.rc .gitolite.rc.origonal
perl -pi -e 's/(^.*ENABLE)/    PRE_GIT => ['\''ip-limit'\''],\n$1/g' .gitolite.rc

Notas:

  • O VREF só é chamado de push, por isso não pode ser usado para restringir a busca, etc.
  • GL_REPO também é útil para alguns.
por 10.06.2017 / 04:08

Tags