git - 在具有 ssh 访问权限的服务器上设置 git 存储库

标签 git

按照本 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/

相关文章:

git - "git add submodule"上的 fatal error

git - 将除单个文件外的所有文件添加到提交中?

git - 两个分支添加的相同文件导致奇怪的 merge 冲突

git - Visual Studio Team Services 说 "Task PowerShell failed"虽然它没有

git - 为协作者使用 git repo 的最佳方式是什么?

git - 错误(internetKeychainItemForServer :withUsername:path:port:protocol:) - The specified item could not be found in the keychain

git - pull 或推到 git : ENOENT: no such file or directory 时出错

git - 让 git 忽略重命名

Git,为什么我的主分支受到影响?

git - 在 Github 中推送新代码的问题