我已经在Linux机器上设置了一台Mercurial服务器,它运行得很好。例如,用户可以使用如下方式推拉到它:
hg push ssh://...
用户也可以通过ssh进入服务器。
对于一些用户,我想限制他们只能访问Mercurial。
我该怎么做?
发布于 2011-01-09 22:47:57
你想问的是这。这正是git为git所做的--它通过ssh键文件中的command=
条目运行,并确保只能使用ssh键执行git操作。这个链接的问题询问的是类似于Gitorious的Mercurial软件。作为一个变化莫测的用户,我不能评论答案的质量。
发布于 2011-12-24 16:38:07
Mercurial为这一点提供了一个脚本!使用我们提供的contrib/hg-ssh
脚本来限制命令。该文件包含此标题以解释如何使用它:
若要在
~/.ssh/authorized_keys
中使用command
选项,请参见sshd(8):command=“hg/ To /repo1 /path/to/repo2 ~/repo3 ~user/repo4”ssh-dss .(可能还有其他一些有用的选项:no-port-forwarding
、no-X11-forwarding
、no-agent-forwarding
),这允许将SSH从/推到作为参数提供的存储库。如果您的所有存储库都是公共目录的子目录,则可以允许具有以下较短路径的路径: command="cd path/to/my/ repo1 &hg repo1 subdir/repo2“,您可以使用普通shell的模式匹配,例如: command="cd repos &hg user/thomas/* project/{mercurial,foo}”。
发布于 2011-01-10 20:14:12
您可以修改/etc/security/others.conf指令,以便只允许特定用户登录,而不允许其他用户登录。
这一行看起来应该是这样的,但是对于本地化的组/用户:
-:ALL EXCEPT your_group your_user1 your_user2 :ALL
或者,如果您有一个特定的组,则要将特定用户/组列入黑名单:
-: blacklist_group1 blacklist_user :ALL
或者您可以允许通过sshd.conf中的组进行ssh访问,但是access.conf方法更具有全局性。这应该允许您的用户仍然访问主机,但不能登录。
埃里克
https://serverfault.com/questions/220433
复制相似问题