我有一个配置了修订控制系统的项目的 Windows 服务器。假设它是 GIT 或 SVN 或 .... 假设全球有 10 个人在从事这个项目。
首先想到的是使用 SSH 保护这些程序员和服务器之间的连接。但我的问题是,如果黑客获得 SSH 用户名和密码用户帐户(如果我错了,请告诉我),他可以破坏服务器。
所以我需要一种安全的方式让程序员将他们的修订推送到服务器。任何想法都会很可爱
我有一个配置了修订控制系统的项目的 Windows 服务器。假设它是 GIT 或 SVN 或 .... 假设全球有 10 个人在从事这个项目。
首先想到的是使用 SSH 保护这些程序员和服务器之间的连接。但我的问题是,如果黑客获得 SSH 用户名和密码用户帐户(如果我错了,请告诉我),他可以破坏服务器。
所以我需要一种安全的方式让程序员将他们的修订推送到服务器。任何想法都会很可爱
首先,可以保护 SSH 帐户(例如,仅使用公钥身份验证)。
正确设置 Mercurial 后,您只能推送新的修订版本,而不会破坏任何内容。但是,如果攻击者获得了对存储库的写访问权,那么无论如何您都会遇到其他问题。如果您不想给他们一个新帐户,您也可以使用受保护的 HTTP 访问。
目前我使用一个名为“darcs”的分布式修订控制系统。我已经使用该工具和 linux 服务器尝试了下面列出的两种方法。我还在 Subversion 和 CVS 中使用了方法 1。
您的里程可能因不同的服务器和/或版本控制系统而异。但是对于您选择的任何配置,基本方法可能以一种或另一种方式可行。
1- 使用单个用户帐户而不向任何人泄露其密码,您可以使用公钥通过 SSH 验证与该帐户的连接。您将该单个用户帐户的权限限制为只能访问存储库。您的存储库的贡献者必须生成一个私钥/公钥对并向您发送公钥,以便您可以将其添加到授权密钥中。如果您删除它,他将失去访问权限。
2- 要求您的补丁贡献者签署并通过电子邮件发送补丁。您维护一个公钥环,其中包含授权贡献者的密钥。所有补丁签名在应用之前都会针对该密钥环进行验证。因此,仅应用由授权贡献者签名的补丁。