2011-08-17 113 views
19

我想知道是否有人在他们的服务器上管理github组织存储库访问的好,干净,安全的方法?管理github组织存储库上的ssh公钥

看来您只能将pub key附加到您的个人帐户,并且不能将访问权限制仅限于组织。

我们有一个测试版服务器,我们在这里放置多个项目以便部署密钥,因为它们需要是唯一的,并不理想。给予组织的全球访问权限会很好,但我不想让服务器(我们有自由职业者)可以完全访问我的个人帐户(服务器可以访问组织,这很好,但也是到我个人的项目和我所属的其他组织,这很糟糕)。

两个解决办法,我看到的是要么建立一个虚拟的github用户穿过去,这似乎是愚蠢的,或使SSH代理转发,这感觉就像一个安全风险(我不是最好的服务器管理员)。

一位朋友建议将服务器设置为远程推送服务器,但它似乎是一个创可贴解决方案。

我想认为有一种更简单的方式来设置组织回购的访问权限,因为我认为这将是每个人的基本需求。

如果有人愿意分享一些已经/正在为他们的github组织工作的东西,我十分期待。

我可能只是咬紧牙关,创建一个虚拟github用户并称之为一天,我需要完成工作。

+0

为什么您认为代理转发是一种安全风险?你不明白它是如何工作的? – Tekkub

回答

6

从sergey_mo答案的替代(作为一个直接的答案米哈尔Szajbe的最后一个问题)是在githib记录了chalien创建多个SSH密钥:

https://gist.github.com/jexchan/2351996

+1

旧的答案,我知道......但这里是[工作链接](https://gist.github.com/jexchan/2351996)(我假设这是原始文档/信息链接到上面的答案)。 – mhulse

+0

我刚更新了帖子中的链接。 –

2

我不明白为什么添加虚拟帐户对于自动部署非常不利,只要您在推送到GitHub之前将自己的测试版服务器作为临时区域运行即可。也就是说,如果你想要betacode是私人的。

通常的GitHub方式是添加所有的协作者,并且只需要一个稳定的项目和一个beta分支。您会自动将当前的测试版本拉到您的测试版服务器进行测试(在那里不需要ssh密钥),如果测试成功,您可以从beta分支到稳定的项目进行合并。

+0

我想这不是世界上最糟糕的事情,我只是希望能够用一个账户管理组织访问,而不必像我以前那样玩弄登录。虽然组织不是用户,但这种方法很有意义。感谢您的意见。 – digitaldreamer

+1

问题是,如果您在任何DVCS中使用虚拟账户,您将无法责怪或注释/谁做了什么,这非常方便是其中一个帐户遭到黑客入侵,您不必向每个人发送新密钥。 – Lars

0

您可以通过让您的应用程序由不同用户(每个应用程序一个用户)运行来解决此问题。我的意思是服务器用户,而不是github用户。无论如何,在多应用程序服务器上这是一个很好的做法。

每个用户都拥有自己的ssh密钥对,因此您拥有许多独特的部署密钥(每个github回购一个)。

我尽可能使用这种方法。但是,有时候,有多个应用程序由单个用户运行,并且可能无法使用github的部署密钥来完成。我也在寻找这样的案例的一个很好的解决方案。

1

小记约CI:
举例来说,如果你使用詹金斯,你需要它来访问更多的则1个项目,您将需要:
1.添加公钥来一个github上的用户帐户
2.添加此用户作为所有者(访问所有项目)或作为每个项目的协作者。一个系统的用户将无法正常工作,因为GitHub上会先找到

许多公共密钥匹配的部署重点和将发回错误,如“ERROR:允许用户/ repo2拒绝用户/ repo1”

http://help.github.com/ssh-issues/