创建根公钥/私钥并将公钥添加到 Github 存储库是否存在安全风险?

创建根公钥/私钥并将公钥添加到 Github 存储库是否存在安全风险?

我想对我服务器上的一些重要目录(例如 /etc/apache)进行版本控制。该目录中的所有文件和子目录均归 root:root 所有。为我的 root 用户创建公钥/私钥对、将该密钥添加到 Github 存储库,然后将该 apache 目录存储在 Github 上,这是否被视为安全风险?如果存在安全风险,那么在 Github 上存储系统目录(而不是个人目录)的“最佳实践”方法是什么?

答案1

从本质上来说,这并不是一个安全风险——公钥是公开的。

但是,您可能仍希望至少在一定程度上保持配置文件的私密性,而不是在 github 上向全世界公开它们。如果您的配置存在一些安全隐患,该怎么办?您不一定要向所有人展示它。

查看 GitHub 私人存储库(您需要订阅),或查看 GitLab(私人存储库是免费的),或在您控制的某个服务器上托管您的 GIT 存储库。

答案2

是的。

如果任何你不信任的人都可以访问公钥,除非生成了足够长的密钥,否则这将带来安全风险。确实需要大量的计算能力和时间来分解出用于创建 RSA 密钥对的所有素数,但只要有足够的时间和精力,就可以破解密钥。但是,我说的“大量”是指大量的时间和精力。比如,几百年的计算。通常,唯一拥有这种资源的人是政府,即使如此,他们也很难破解加密。

但是!当您生成 ssh RSA 密钥对时,您可以通过增加生成的密钥的长度来使其变得更加困难,以至于几乎不可能让任何人对您的私钥进行逆向工程。每增加一位,计算机破解您的代码所需的工作量就会增加约 2 倍。ssh 中 RSA 密钥的默认长度为 2048。以下是创建大小为 4096 的密钥的示例。

ssh-keygen -t rsa -b 4096

此密钥应该更难破解,甚至可以增加其大小。Git hub 建议您在创建 RSA 密钥时使用 4096 位长度。

相关内容