将“id_rsa.pub”文件安全地保存在我的 dotfiles 公共存储库中

将“id_rsa.pub”文件安全地保存在我的 dotfiles 公共存储库中

所以我想知道,如何才能在我的 dotfiles GitHub 存储库中拥有这个文件?

我厌倦了每次在新计算机上或重新安装操作系统等时都必须生成新的 SSH 密钥。

那么最好的方法是什么?我想在密钥生成时为文件分配一个密码就足够了吗?这应该对其进行加密或使其在没有它的情况下无法使用。这够好吗?

如果没有,有没有办法加密该文件,以便我可以放心地将其上传到互联网,但可以随时使用正确的密码使用它?

答案1

id_rsa.pub是公钥,根本不需要保护。事实上它需要为了工作而发表。我假设您实际上在这个问题中谈论id_rsa(私钥)。

当然,您不必每次使用新计算机或重新安装操作系统时都生成新的 SSH 密钥。您可以将该文件从一台计算机复制到另一台计算机。或者,如果您暂时位于另一台计算机上,并且不想存储密钥,则可以远程登录到存储密钥的计算机,ssh -A并使用 加载密钥到本地代理中ssh-add。 (只有当您信任临时使用的计算机上的 root 权限时,才应该执行此操作。)

您还应该在 SSH 密钥上设置一个密码(如果没有,请立即添加一个密码,或者更好的是,考虑该密钥已泄露并替换它!),否则任何人即使短暂访问该密钥所在的计算机已存储将有权访问它。

如果将文件从一台计算机手动复制到另一台计算机对您来说不方便,您可以将 SSH 密钥存储在云中(github 或其他)。就我个人而言,我宁愿不这样做。

我假设您打算为此目的使用私有 github 存储库。尽管带有密码的 SSH 密钥对于没有密码的任何人来说都是无用的,但您仍然应该将加密的密钥留给自己,以防有人获得您的密码。

编辑: 更多分享id_rsa

尽管id_rsa对于任何不拥有相应密码的人来说都无法使用,但您仍然不应该共享它。

SSH 密钥可以被认为有点像双因素身份验证的一种形式。该id_rsa文件是你拥有的东西。密码是“你知道的事情”。只有组合在一起才有用。我说“有点像”是因为您实际上并不id_rsa像使用真正的两因素身份验证系统的“Something You Have”组件那样随身携带该文件。

不共享id_rsa文件可以提供一些保护,以防您的密码泄露给其他人。如果发生这种情况,您绝对应该撤销密钥,但至少攻击者如果无法获取id_rsa.

相关内容