Dou*_*sDD 20 ssh passphrase github ssh-keys
为了在新机器和环境上更轻松地设置无密码 SSH,是否有任何原因id_rsa.pub不能在网络上的某个地方发布文件(只是密钥对的公共部分)?例如在 dotfiles GitHub 存储库中。
我知道:
id_rsa文件(密钥对的私有部分)必须小心保护和但我的搜索没有出现任何明确的建议,即允许或鼓励这样做。
出于好奇,同样的建议是否适用于没有密码短语的密钥对?
Fal*_*mot 27
RSA 专门设计用于允许您共享该公钥,所以是的,您可以发布它。这与带有 RSA 证书的 x.509(和 SSL)的工作方式非常相似。
在发布文件之前,实际看看它;唯一需要在那里的是关键字“ssh-rsa”和base64编码的密钥。您可能希望保留它(我相信这是现在的默认设置)。
无论密钥是否有密码,都是如此。密码短语加密私钥,不影响公钥。
与往常一样,确保您的密钥具有足够的熵和足够大。如果它是由损坏的 PRNG 生成的,则可能是可以预测的。然而,发布它不会带来太多额外的风险,因为如果密钥空间很小,攻击者可以简单地尝试枚举密钥空间中的所有密钥,直到他们得到正确的密钥。
我建议使用 4096 位密钥(指定-b 4096),这样别人将您的公钥转换为私钥会比平时(默认为 2048)更困难。这是这样做的唯一重大风险,而且不是很大,因为该算法是专门为使其不切实际而设计的。
虽然作为规则,我不建议将您自己的特定配置放在公共项目存储库中(假设该存储库适用于所有人,而您的配置仅适用于您,这只是有点粗鲁),但对安全性的影响很小。
唯一合理的攻击媒介是以某种方式使用该公钥在某些恶意上下文中识别您的身份。这可能是我无法理解的,但公钥确实唯一标识了私钥,尽管它没有给出任何关于其来源的提示。
有一个可能不适用的极端情况攻击向量,但是如果您回忆起Debian 意外破坏 openssl PRNG的惨败,那么在受影响的系统上生成的任何 ssh 密钥都很容易预测,并且可以通过其公钥进行识别。因此,在这种情况下,发布公钥可能会给您带来麻烦。或者更恰当地说,将该密钥用于任何事情都可能使您陷入困境。