0

我有一个使用 mercurial repo 维护代码的 centos 服务器。为了允许新人向 mercurial 提交代码,我创建了一个新用户,将他们添加到 webdev 组,他们可以通过以下方式推送/拉取代码

hg pull ssh://name@server.com. 

但是,有些文件(配置文件)我不希望新用户访问。Mercurial 已被要求不要跟踪这些文件,因此访问它们的唯一方法是通过 ssh 进入系统并查看文件。我不希望新用户能够做到这一点。

本质上,我希望我的新开发人员仅通过 hg 拉/推文件,并禁止 ssh-ing 直接进入系统。最好的方法是什么?我可以在不提供对文件的 ssh 访问权限的情况下提供对 repo 的 hg 访问权限吗?

(或者我解决问题的方法有缺陷?)

谢谢!

4

2 回答 2

2

command通过利用文件中可用的选项,这可以很容易地完成.ssh\authorized_keys。当您在该文件中授予他们的密钥访问权限时,您可以在他们的密钥前面添加一个“command=....”参数,这是他们可以运行的唯一命令。

Mercurial 附带了一个方便的脚本来执行此操作。里面有说明:

https://www.mercurial-scm.org/repo/hg/file/tip/contrib/hg-ssh

于 2012-04-16T16:55:57.883 回答
2

就授权层而言(类似于Git 的 Gitolite),您拥有mercurial-server(不要与Mercurial 轻量级 Web 服务器hgserve混淆)

mercurial-server让您的开发人员使用 SSH 公钥身份验证对集中式 Mercurial 存储库进行远程读/写访问;它提供了方便和细粒度的密钥管理和访问控制。

在此处查看其存储库

它基于与Ry4an他的回答中提到的脚本相同的SSH 强制命令机制(他的回答 +1,因为它已经与 Mercurial 打包)。 请参阅.
refreshauth.py

于 2012-04-16T11:16:19.647 回答