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