【问题标题】:How is the Github handling so many public keysGithub 是如何处理这么多公钥的
【发布时间】:2012-08-23 07:11:07
【问题描述】:

我想知道,Github 是如何处理这么多用于通过 ssh 进行身份验证的公钥的。

一个用户拥有大约 3 个证书,Github 上有多少用户 - 数百万?简单的乘法为我们提供了数百万个证书。我猜它不在用户 git 的一个 .ssh/authorized_keys 文件中,对吧?

他们已经实现了自己的 ssh 服务器,或者是否存在任何用于 OpenSSH 解决此类问题的模块?

谢谢。

【问题讨论】:

  • 非常有趣的问题。我期待着答案。
  • 考虑到git: URL 嵌入了用户名,它就不再是问题了。问题(imo)是他们会告诉您您是否使用了重复的密钥,并拒绝接受它(使共享帐户更难)。
  • @parsifal:github 的 ssh “urls”(虽然我们并没有真正考虑 urls)看起来像“git@github.com:sourcejedi/Bonfire.git”。 (我的 github 是“sourcejedi”,而不是“git”)。其他选项(真实网址)不包括用户名部分。
  • @sourcejedi - https://github.com/sourcejedi/Bonfire.git 和 git://github.com/sourcejedi/Bonfire.git 都有您的用户名。除非您的 GH 帐户与我的不同,否则您会在读写 URL 中看到相同的内容。
  • 对不起,我不应该提到 https 和 git url,因为它们不使用您的 ssh 密钥。如果您阅读该问题,您可以看到它指的是“用户 git”。未经修改的 sshd 显然会使用该用户,并且不会尝试在传递给 ssh 的命令中搜索用户名。因此,关于修改 sshd 的问题。

标签: git ssh github openssh


【解决方案1】:

答案是,提到 rkhayrov,Github 使用修补过的 OpenSSH 守护进程。

对于那些对此问题感兴趣的人,我找到了源代码(猜猜代码托管在哪里;)) - http://github.com/norbauer/openssh-for-git

【讨论】:

    【解决方案2】:

    他们已经修补了 sshd 以在 MySQL 数据库中查找键:

    https://github.com/blog/530-how-we-made-github-fast

    【讨论】:

    • 我前段时间看过那篇文章,但是我完全忽略了这部分。非常感谢。
    猜你喜欢
    • 2013-04-16
    • 2020-10-10
    • 2018-08-17
    • 2011-08-19
    • 1970-01-01
    • 2015-11-14
    • 2011-10-08
    • 2021-11-03
    • 2012-06-04
    相关资源
    最近更新 更多