我正在使用gitolite在一台Debian Squeeze服务器上,有3个用户可以访问和使用存储库:
- alex@workbox - alex@homebox - katy@workbox
以上是三个Ubuntu框的相应用户名和主机名(Alex从两个位置工作)。
首先,我添加了alex@workbox到gitolite:
1. Alex使用ssh-keygen生成了他的ssh密钥 2. 我将他的ssh密钥复制为“keydir”文件夹中的alex@workbox.pub 3. 修改了我的本地gitolite-admin克隆库的conf/gitolite.conf文件,以便让alex@workbox对存储库具有RW访问权限:
`repo project1`
`RW+ = alex@workbox` 4. 做了通常的事情: - `git add .` - `git commit -m“Added alex@workbox”` - `git push`
当Alex尝试克隆project1存储库时,会出现一个错误,提示拒绝用户“alex”的访问。因此,我登录服务器并打开/var/lib/gitolite/.ssh/authorized_keys文件。文件的第一部分如下:
command="/usr/share/gitolite/gl-auth-command alex",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa...
所以我手动用
alex@workbox
替换了alex
,保存文件后这次Alex能够克隆存储库并且没有任何问题。然后我按照上面的步骤添加了Katy,在将其推送到
gitolite-admin
之后,我再次打开了authorized_keys
文件并发现gitolite用user
替换了"user@hostname
"。因此,它使用
alex
代替alex@workbox
,对于katy
同样如此。然后我不得不再次手动替换并保存该文件。我发现每次我为
gitolite-admin
repo执行推送时,gitolite都会在其.ssh/authorized_keys
中用"user
"替换每个"user@hostname
",这就使得用户无法访问存储库。我该怎么做才能让gitolite保留"
user@hostname
"呢?是否需要在服务器上进行配置或在我本地克隆的
gitolite-admin
repo上进行配置更改?