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 ).
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!
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 ).
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:
Tags gitolite