我会尽力解释我的情况:
我在 debian 挤压服务器中使用 gitolite,并且有 3 个用户可以访问和使用存储库:
alex@workbox
alex@homebox
katy@workbox
以上是三个 Ubuntu 机器对应的用户名和主机名(Alex 在两个位置工作)。
我做的第一件事是添加alex@workbox
到 gitolite:
- Alex 使用 ssh-keygen 生成了他的 ssh 密钥
- 我将他的 ssh 密钥复制为 alex@workbox.pub 在我本地 gitolite-admin 克隆仓库的“keydir”文件夹中
- 修改了我本地 gitolite-admin 克隆存储库的 conf/gitolite.conf 文件,以便让 alex@workbox RW 访问存储库:
repo project1
RW+ = alex@workbox
- 照常做:
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
为alex@workbox
,保存了文件,这次 Alex 能够克隆存储库并毫无问题地使用它。
然后我按照上述步骤添加 Katy,在推送到之后gitolite-admin
,我再次打开authorized_keys
文件,看到 gitolite 将“ user@hostname
”替换为“ user
”。
所以它有alex
而不是alex@workbox
和相同的katy
。
然后我不得不再次手动替换它并保存文件。我看到,对于我为gitolite-admin
repo gitolite 所做的每次推送,都会将其中的每个“ user@hostname
”替换为“ user
”,.ssh/authorized_keys
这样会使用户无法访问存储库。
我该怎么做才能让 gitolite 保持“ user@hostname
”?
是否需要在服务器上进行配置或在我的本地克隆存储库上进行配置更改gitolite-admin
?