使用gitolite对git的存储库和用户访问
首先,我是GIT和gitolite的新手。但我已经读了足够多的书,清楚了我的基本概念。 我在学习Sitaram的教程,我想问几个问题来澄清和质疑使用gitolite对git的存储库和用户访问,git,gitolite,Git,Gitolite,首先,我是GIT和gitolite的新手。但我已经读了足够多的书,清楚了我的基本概念。 我在学习Sitaram的教程,我想问几个问题来澄清和质疑 我有一个用户git。git用户真的需要没有密码吗(用户使用--disabled password选项创建(我不能让它在RHEL上工作,但它在ubuntu上工作))?我知道git用户必须可以通过ssh访问 假设我有一个GIT服务器和三个客户机gitadmin、cleintA和clientB。现在,为了让gitolite工作,我在gitadmin上将cli
--disabled password
选项创建(我不能让它在RHEL上工作,但它在ubuntu上工作))?我知道git用户必须可以通过ssh访问keydir
,然后编辑我的conf/gitolite.conf
,如下所示:
repo phpsite
RW+ = clientA
repo javasite
RW+ = clientB
git@server.com:phpsite
还是clientA@server:phpsite
我知道这个问题可能有点愚蠢,但我真的需要澄清这些疑问
任何帮助或暗示都是值得赞赏的
编辑 在VonC回答之后,我实施了gitolite,并回避了另一个疑问。 假设我有一台机器
clientA
,它有两个用户alice,bob
,理想情况下,这些用户的公钥应该是alice.pub和bob.pub
。现在的问题是,我可以为alice
像alice clientA.pub
那样生成并命名公钥吗?根据我的理解,不同的文件名不应该是身份验证的问题。但是关于conf/gitolite.conf
repo下的用户名应该是
repo phpsite
RW+ = alice-clientA
或
应该和以前一样吗
repo php:site
RW+ = alice
谢谢
git用户真的需要没有密码吗(用户创建时使用--disabled password选项)
不是。git
“是一个普通账户
当我提交这些文件并将它们推送到服务器上时。然后呢
Gitolite将在~git/repositories/
中创建裸repophpsite.git
和javasite.git
,它将修改~git/.ssh/authorized_密钥
,以便使用clientA
和clientB
公钥和参数调用Gitolite脚本。它利用了ssh机制 请参阅“”中的更多内容 您始终使用ssh连接作为用户
git
:
git@server.com:phpsite
您从未尝试将ssh作为
clientA
:ssh将以clientA
身份验证您,因为您的clientA
公共/私有ssh密钥。真是太快了!!:)谢谢我很珍惜你的指导。我为git@server.com:phpsite
也是。我只是想确认一下。你救了大喜!我还有一个疑问。我已经更新了问题。你能研究一下吗?@SAM你不需要为你想要访问的每个回购生成公钥,alice.pub就足够了。只有当alice从另一台机器访问相同的回购协议时,您才会为alice生成另一个公钥/私钥。是的,没错!。但是如果在同一台机器上有两个用户,理想情况下,conf
中的gitolite用户名将与公钥文件名的名称相同。你是想说,对于同一台机器,我不必像用户那样担心创建这么多公钥吗?@SAM你必须让每个用户在同一台机器上为每个用户创建一对公钥/私钥,并从这些用户那里获得适当重命名的公钥。每对密钥驻留在/home/auser/.ssh/id\u rsa(.pub)
中,每个用户都将其用于ssh连接。但是用户登录后适当重命名的id\u rsa(.pub)
密钥也会复制到gitolite admin/keys
目录中,并推回到gitolite admin
repo。