![发布 id_rsa.pub 以便更轻松地设置新环境?](https://linux22.com/image/629658/%E5%8F%91%E5%B8%83%20id_rsa.pub%20%E4%BB%A5%E4%BE%BF%E6%9B%B4%E8%BD%BB%E6%9D%BE%E5%9C%B0%E8%AE%BE%E7%BD%AE%E6%96%B0%E7%8E%AF%E5%A2%83%EF%BC%9F.png)
为了在新机器和新环境中更轻松地设置无密码 SSH,有什么理由id_rsa.pub
不将文件(仅密钥对的公共部分)发布到网络上的某个地方?例如在 dotfiles GitHub 存储库中。
我知道:
- 该
id_rsa
文件(密钥对的私有部分)必须得到严格保护,并且 - 密钥对应该用密码保护
但我的搜索并没有发现任何明确的建议允许或鼓励这样做。
出于好奇,对于没有密码的密钥对,同样的建议是否适用?
答案1
RSA 专门设计用于允许您共享该公钥,因此您可以发布它。这与使用 RSA 证书的 x.509(和 SSL)的工作方式非常相似。
在发布文件之前,请仔细查看;其中唯一需要包含的内容是关键字“ssh-rsa”和 base64 编码的密钥。您可能希望保留它(我相信这是现在的默认设置)。
无论密钥是否有密码,情况都是如此。密码会加密私钥,但不会影响公钥。
一如既往地确保您的密钥具有足够的熵和大小。如果它是由损坏的 PRNG 生成的,则可能是可预测的。但是,发布此密钥不会带来太多额外风险,因为如果密钥空间如此之小,攻击者可以简单地尝试枚举密钥空间中的所有密钥,直到得到正确的密钥。
我建议使用 4096 位密钥(请指定-b 4096
),这样别人就比平常更难将您的公钥反转为私钥(默认值为 2048)。这是这样做的唯一重大风险,而且风险并不大,因为算法是专门设计来使其不切实际的。
答案2
它已经是了。:) 只需在您的 Github 个人资料 URL 末尾添加“.keys”,如下所示:
答案3
虽然一般来说我不建议将你自己的特定配置放在公共项目存储库中(假设存储库用于每个人并且您的配置是你独自一人,只是有点粗鲁),安全隐患很小。
唯一合理的攻击媒介是以某种方式使用该公钥来确认您处于某种恶意环境中。我不知道那是什么,但公钥确实唯一地标识了私钥,尽管它没有给出任何有关其来源的提示。
有一种极端情况下的攻击向量可能不适用,但如果你还记得Debian 意外破坏了 openssl PRNG受影响系统上生成的任何 ssh 密钥都是很容易预测的,可以通过其公钥识别。因此那在这种情况下,发布公钥可能会给你带来麻烦。或者更确切地说,用该钥匙做任何事情可能会给你带来麻烦。
答案4
是的,你可以发布你的 SSH 公钥。你也可以使用SSHFP 记录在 DNS 中!这可能真的很方便,例如,如果您需要更新/更改服务器的 SSH 密钥。