如果我使用 gitolite 之类的东西来处理访问控制,authorized_keys 的扩展性如何?也就是说,如果我有 50,000 个用户,性能会如何(我猜不会很好)。有什么替代方案吗?
更新: 我决定自己做一些测试(我本来就应该这么做)。我写了一个简单的脚本来生成 SSH 密钥并将它们添加到 authorized_keys 文件中。我的电脑速度不是很快,所以我只生成了 8,061 个密钥,然后将自己的密钥添加到最后,文件最终大小为 3.1MB。然后我添加了一个包含一个文件的 git 存储库并运行了 git clone 三次:
With 8,061 keys (Mine is at the end of the file)
real 0m0.442s
real 0m0.447s
real 0m0.458s
With just a single key:
real 0m0.248s
real 0m0.264s
real 0m0.255s
性能比我想象的要好得多。我仍然对任何可能更快、更高效的替代方案非常感兴趣,这些替代方案可以处理 50,000 多个大型密钥组。
答案1
您实际上可以在 GitHub 上看到其效率有多快。如此多的密钥不会造成严重的瓶颈。
尽管2009 年在他们的博客中记录,他们改变了从数据库检索 ssh 密钥的方式。提示:@Jeremey
但是,您创建了超过 8k 个密钥,您可以使用 50k 个密钥再次测试。
这些密钥不需要是有效密钥,只需编写一个生成器并写入文件,然后将您的密钥附加到末尾。