我在使用Gitolite设置IP限制时遇到了麻烦。 这可能是简单的,这是我第一次使用它(我终于从Gitosis切换,因为它不能做我所需要的)
基本上我的客户网站都有一个git回购。 我推到回购,后接收钩推到她的现场或开发取决于我推到哪里。 无论如何,事情是一个客户想要访问她的网站上的文件,我没有问题,但是因为她可以在〜/ .ssh中访问她的SSH密钥,所以她会直接访问我不想从Web服务器之外允许的回购。
这是我的configuration的相关部分:
repo example.com R VREF/FROM/127.0.0.1 = user
这将工作,除了Gitolite生成一个坏的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...
问题在于no-pty之后的空间。 删除空间,它工作正常。 保持空间和关键被忽略。
任何想法如何正确地设置这将不胜感激! 我真的不希望每当我改变一些东西时,在authorized_keys文件上运行sed,除非没有别的办法…
谢谢!
gitolite食谱“ 例2:源IP地址限制 ”表明这个VREf不会给授权密钥添加任何东西。
VREF在gitolite V3中更好地定义(而不是gitolite V2中的虚拟参考 )。
解:
1使触发器/ ip-limit包含
#!/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指导gitolite使用它:
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
笔记: