按照本 link 中的说明进行操作我设法在 uni 的服务器上的 $HOME
上创建了一个存储库。我使用 SSH
克隆/pull/推送到服务器上的这个存储库。
我的问题是:是否可以授予其他人访问此存储库clone/push/pull
的权限?显然我在服务器上没有 root 权限边。此外,我不想将它作为公共(public)存储库......我想知道谁在克隆和推送到这个。
我可以在我帐户的网络存储部分做类似的事情吗?我的网站存储在哪里,然后使用htaccess
之类的东西来管理访问?
最佳答案
您可以在存储库上设置 POSIX ACL,以允许更多用户访问它。但这并不能保证有人以另一个用户的身份提交/配置起来非常麻烦/...
相反,我建议您使用 gitolite:https://github.com/sitaramc/gitolite .
它的工作方式与 github 上的 pull/推机制非常相似:一个 ssh 用户,一个自定义 shell,根据用于登录的 ssh key 对用户进行身份验证。
如果您想要更复杂的东西(类似于 github,具有提供许多功能的 Web UI),请查看 gitlab ( http://gitlabhq.org/ ) 或 gitorious ( http://getgitorious.com/ )。
更新
为了能够以安装gitolite的用户在服务器上正常登录:
- 创建一个新的 SSH key 并将其保存为
~/.ssh/id_rsa-git_admin
在您的工作站上 - 将它作为第一个 key 添加到机器上的
~/.ssh/authorized_keys
文件中 - 安装 gitolite 并确保 key 仍然存在(在注销之前等待)
- 从另一个终端运行
git clone git@yourhost:gitolite-admin
,并确保它正常工作。 - 从另一个终端,尝试使用
ssh -i ~/.ssh/id_rsa-git_admin git@yourhost
登录机器
如果最后两步没问题,说明安装成功。
关于git - 在具有 ssh 访问权限的服务器上设置 git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15202678/