请原谅令人沮丧的事情,因为我试图多次正确设置此设置无效(可能并且很可能是由于我的无知,但也可能是由于缺乏详尽而简洁的文档)。
我正在尝试设置一个git服务器,以便我可以在一小组开发人员之间共享代码。每个开发人员可以从多个客户端PC连接。我过去来自MS,所以我在开发工具集方面有点被宠坏了,但是如果我能得到类似于TFS的东西那就太棒了。
当尝试设置gitosis时(我明白这对于每个https://serverfault.com/questions/225495/ubuntu-server-gitosis-user-naming-convention git社区的git社区都不赞成)或者gitolite,似乎我设置它时我必须非常小心,因为它似乎一切都在牙签上保持平衡。
我最近设置git服务器的尝试包括将我的公钥(benny.pub)从我的笔记本电脑移动到服务器,使用该公钥设置所有内容并下拉配置以设置回购和权限。然后我意识到我想在另一台PC上开发,所以我创建了一个新密钥(benny@desktop.pub)并将benny.pub重命名为benny@laptop.pub,这显然搞砸了。这就是我知道通过更改名称而感到愚蠢的地方。
我在冗长的描述之后的问题是:我如何设置一个坚固的自托管git服务器,能够让多个开发人员从多台机器登录,同时保持安全性等?必须有一种经过验证的技术(噱头描述可能4-5种不同的方式......也令人沮丧)这样做,因为我确信我不是唯一一个试图做同样事情的人。也许git不适合我的团队?
非常感谢任何帮助!
答案 0 :(得分:15)
根据我的经验,您所需要的只是一台带有单 git帐户/登录的SSH服务器,您可以使用其中一个公钥连接到该服务器。使用SSH安装gitolite(将gitloite从客户端复制到服务器并执行基本设置)并让开发人员向您发送公钥。将这些密钥添加到~
中的gitolite-admin存储库并推送。
为什么开发人员首先需要多个密钥对,即使使用多台计算机?这种情况既不会影响SSH处理身份验证的方式,也不影响gitolite如何处理授权:它们仍然是SSH密钥。
如果开发人员必须使用多个密钥对(一个用于git,另一个用于其他服务器),让他们处理复杂性并建议他们在~/.ssh/config
中为每个密钥对/服务器组合创建一个条目他们使用。
如果开发人员在使用的每台机器上都有不同的密钥对,那么gitolite组可以组合多个公钥:
@agross = agross-1 agross-2
答案 1 :(得分:4)
答案 2 :(得分:2)
我在工作时保持gitosis配置,当开发人员有多个ssh密钥时,我所要做的就是将所有这些密钥放在同一个keydir/user.pub
文件中。
所以你把所有的密钥连接成keydir/benny.pub
,你就可以了。
答案 3 :(得分:2)
有一些开源git托管解决方案,带有基于Web的UI,用于创建存储库和添加用户(如GitHub:FI)...虽然我不知道限制访问:
HTH
答案 4 :(得分:1)
我在每个在服务器上拥有帐户的开发人员使用debian。我使用ssh与私钥登录。最后,开发人员必须使用类似ssh://username@example.com/git-repo/repo.git的URL来结帐或在任何情况下与repo上的git进行交互
答案 5 :(得分:0)
我认为问题是你的ssh客户端(windows或linux版本)没有找到密钥文件。我遇到了同样的问题并以这种方式解决了:
我在〜/ .ssh中添加了一个文件名配置,其中包含以下内容:
IdentityFile ~/.ssh/rafael.nicoletti@corporation
在我想访问我的git服务器的每个位置,我只是在%HOME%文件夹中复制这些文件
您也可以在配置文件中添加以下内容:
IdentityFile /d/identity.key
IdentityFile /e/identity.key
IdentityFile /f/identity.key
IdentityFile /.../identity.key
因此配置将在可移动媒体中查找密钥。