使用gitolite对git的存储库和用户访问

使用gitolite对git的存储库和用户访问,git,gitolite,Git,Gitolite,首先,我是GIT和gitolite的新手。但我已经读了足够多的书,清楚了我的基本概念。 我在学习Sitaram的教程,我想问几个问题来澄清和质疑 我有一个用户git。git用户真的需要没有密码吗(用户使用--disabled password选项创建(我不能让它在RHEL上工作,但它在ubuntu上工作))?我知道git用户必须可以通过ssh访问 假设我有一个GIT服务器和三个客户机gitadmin、cleintA和clientB。现在,为了让gitolite工作,我在gitadmin上将cli

首先,我是GIT和gitolite的新手。但我已经读了足够多的书,清楚了我的基本概念。 我在学习Sitaram的教程,我想问几个问题来澄清和质疑

  • 我有一个用户git。git用户真的需要没有密码吗(用户使用
    --disabled password
    选项创建(我不能让它在RHEL上工作,但它在ubuntu上工作))?我知道git用户必须可以通过ssh访问

  • 假设我有一个GIT服务器和三个客户机gitadmin、cleintA和clientB。现在,为了让gitolite工作,我在gitadmin上将clientA.pub、ClientB.pub(公钥)复制到
    keydir
    ,然后编辑我的
    conf/gitolite.conf
    ,如下所示:

     repo phpsite
           RW+         =   clientA
    
     repo javasite
           RW+         = clientB
    
  • 现在我的问题是什么时候提交这些文件并将它们推送到服务器上。然后呢? 这些回购协议是如何创建的?我必须手动创建它们,还是gitolite将创建它们

    现在,当clientA需要克隆/签出回购协议时,它将使用什么url

    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/
    中创建裸repo
    phpsite.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。