我安装了gitolite。我能够很好地管理它。我添加了一些新的repos和一些pub键。安装为“git@domain.com
”,并为用户repo.git
添加了回购。
是否必须git@domain.com:repo.git
才能访问,或者是否有办法在网址中指明用户?
可能是user@domain.com:repo.git
或git.domain.com/user/repo.git
之类的东西?
答案 0 :(得分:1)
不,它必须是git@domain.com
因为用户总是相同的:您用来在服务器上安装和管理gitolite的git帐户。
实际用户是从您拨打ssh电话时使用的公钥推断出来的 如果您使用user.pub文件注册该密钥,该文件表示以用户登录后命名的公共密钥 ,那么gitolite将能够识别您的身份。
有关详情,请参阅“how gitolite uses ssh”。
如果你查看
authorized_keys
文件,你会看到这样的条目(当然我切断了它们的结尾;它们很长):
command="[path]/gitolite-shell sitaram",[more options] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA18S2t...
command="[path]/gitolite-shell usertwo",[more options] ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEArXtCT...
首先,它会找出此文件中的哪些公钥与传入的登录相匹配 一旦找到匹配,它将运行该行给出的命令;例如,如果我登录,它将运行
[path]/gitolite-shell sitaram
所以首先要注意的是这样的用户没有“shell访问”,这很好!当
gitolite-shell
获得控制权时,会查看第一个参数(“sitaram
”,“usertwo
”等),以确定您是谁。然后,它会查看SSH_ORIGINAL_COMMAND
变量,以找出您要访问的存储库,以及您是在阅读还是写作。现在它有一个用户,存储库和请求的访问权限(读/写),gitolite查看其配置文件,并允许或拒绝请求。