Git服务器挫败(Gitosis,Gitolite等)

请原谅令人沮丧的意见,因为我试图多次正确地build立这个设置(可能和很可能是由于我的无知,但也可能是由于缺乏全面和简洁的文件)。

我试图build立一个git服务器,以便我可以在一个小团队的开发人员之间共享代码。 每个开发人员可以连接多个客户端PC。 我以前是从MS来的,所以在开发工具方面我有些被宠坏,但是如果我能得到类似于TFS的东西,那将是非常棒的。

当试图设置gitosis(我明白这是不推荐git社区每https://serverfault.com/questions/225495/ubuntu-server-gitosis-user-naming-convention )或gitolite,似乎是一旦我build立了,我必须非常小心,因为它似乎一切都在牙签上的平衡。

我最近尝试build立一个git服务器,包括将我的公钥(benny.pub)从笔记本电脑移动到服务器,使用该公钥设置所有内容,并拉下configuration以设置回购和权限。 然后,我意识到我想在另一台PC上开发,所以我创build了一个新的键(benny@desktop.pub),并将benny.pub重命名为benny@laptop.pub,这明显地搞砸了。 这是我知道我通过改变名字是愚蠢的。

我的问题在一个冗长的描述之后是这样的:我怎样才能build立一个坚固的自我托pipe的git服务器,让多个开发人员能够在保持安全性的同时从多台机器login? 必须有一个成熟的技术(gitolite描述了可能4-5种不同的方式…也令人沮丧)做到这一点,因为我相信我不是唯一一个试图做同样的事情。 也许git不适合我的团队?

任何帮助是极大的赞赏!

Solutions Collecting From Web of "Git服务器挫败(Gitosis,Gitolite等)"

根据我的经验,您所需要的只是一个SSH服务器,您可以使用其中一个公用密钥连接到一个单一的 git帐户/登录。 使用SSH安装gitolite(将gitloite从客户端复制到服务器并执行基本设置),并让开发人员向您发送公钥。 把这些密钥添加到你的~和git中。

为什么开发人员首先需要多个密钥对,即使使用多台机器? 这种情况不会影响SSH如何处理身份验证,也不会影响gitolite如何处理授权:它们仍然是SSH密钥。

  • 如果开发人员必须使用几个密钥对(一个用于git,另一个用于其他服务器),则让他们处理复杂性,并建议他们在~/.ssh/config为每个使用的密钥对/服务器组合创建一个条目。

  • 如果开发人员在每台机器上都有不同的密钥对,gitolite组可以组合几个公钥:

 @agross = agross-1 agross-2 

几个指针:

关于Scott Chacon的Pro git书上的服务器上的git部分

Gitorious是FOSS

我在工作中维护gitosis配置,当开发人员有多个ssh密钥时,我所要做的就是将所有这些密钥放在同一个keydir/user.pub文件中。

所以把你所有的钥匙连接到keydir/benny.pub ,你就可以全部设定好了。

有一些开源的Git托管解决方案,用于创建存储库和添加用户(如GitHub:FI )的基于Web的用户界面…虽然我不知道限制访问:

  • Gitorious (红宝石)
  • InDefero (PHP)
  • Girocco (Perl,shell脚本)

HTH

我使用debian与每个开发人员在服务器上有一个帐户。 我用私钥登录ssh。 最后,开发人员必须使用像ssh://username@example.com/git-repo/repo.git这样的URL来检出,或者在任何情况下使用git来与repo进行交互

我认为问题是你的SSH客户端(Windows或Linux版本)没有找到密钥文件。 我有同样的问题,并通过这种方式解决:

  • 在我的笔记本中,在〜/ .ssh文件夹中生成了密钥文件(rafael.nicoletti@mycorporation)(其中〜是home文件夹,windows版本是%HOME%env)
  • 我在〜/ .ssh中添加了一个文件名配置文件,内容如下:

    IdentityFile ~/.ssh/rafael.nicoletti@corporation

在我想访问我的git服务器的每个位置,我只是将这些文件复制到我的%HOME%文件夹中

你也可以把这样的东西放在配置文件中:

 IdentityFile /d/identity.key IdentityFile /e/identity.key IdentityFile /f/identity.key IdentityFile /.../identity.key 

所以配置将在可移动媒体中寻找密钥。