发布id_rsa.pub,以便更容易地设置新的环境?

为了在新的机器和环境中设置无密码的SSH更容易,是否有任何理由为什么id_rsa.pub文件(只是密钥对的公共一半)不能在网上发布? 例如在一个dotfiles GitHub仓库中。

我知道:

  • id_rsa文件(私钥的一半)必须小心谨慎
  • 密钥对应使用密码保护

但我的search没有提出明确的build议,这是允许或鼓励。

出于好奇,相同的build议是否可以保留一个没有密码的密钥对?

RSA是专门devise用来让你分享公共密钥,所以是的,你可以发布它。 这与使用RSA证书的x.509(和SSL)的工作方式非常相似。

发布文件之前,实际上看看它; 唯一需要在那里的是关键字“ssh-rsa”和base64编码的关键字。 你可能想保持它(我相信这是现在的默认值)。

无论密钥是否有密码,情况都是如此。 密码encryption私钥,不影响公钥。

确保一如既往,你的钥匙足够熵和大。 如果它是由一个破碎的PRNG产生的,那么它可能是可以预测的。 但是,发布这个并不会带来额外的风险,因为如果密钥空间很小,攻击者只需要使用枚举的密钥空间中的所有密钥,直到获得正确密钥。

我build议使用一个4096位的密钥(指定-b 4096 ),这样对于某人将您的公钥转换为私有密钥,它将比平常更难(默认值为2048)。 这是做这件事的唯一重大的风险,并且它不是一个很大的风险,因为algorithm是专门devise的,使它不切实际。

它已经是。 :)把“.keys”放在你的Githubconfiguration文件URL的末尾,就像这样:

https://github.com/tjmcewan.keys

虽然通常我不build议在公共项目存储库中放置自己的特定configuration(假设回购适用于所有用户,而且您的configuration仅供您使用 ,这只是一点点粗鲁),但安全性影响极小。

唯一合理的攻击媒介是以某种方式使用该公钥在恶意环境中识别您的身份 。 这可能超出我的范围,但是公钥只能唯一标识私钥,尽pipe它没有给出任何关于私钥的提示。

有一个angular落案例攻击向量可能不适用,但如果你会记得Debian意外地破坏openssl PRNG的惨败, 那么在受影响的系统上生成的任何ssh密钥都是容易预测的,并且可以通过其公钥来识别。 那么在这种情况下,公开密钥的出版会给你带来麻烦。 或者更恰当地说, 把这个钥匙用于任何事情都可能使你陷入困境。

是的,你可以发布你的SSH公钥。 而且您可以使用DNS中的SSHFPlogging发布服务器的指纹! 例如,如果您需要更新/更改服务器的SSH密钥,这可能非常适用。