为数十万用户提供 SSH 访问

为数十万用户提供 SSH 访问

我需要设置一个类似的解决方案GitHub,用户可以通过 SSH 连接到他们的 git 存储库。

这应该可以扩展到数十万用户,所以我的想法是使用分布式文件系统来存储数据(以便每个节点都可以访问整个数据)并使用复制的数据库来控制用户(因此再次 - 每个节点始终可以访问整个用户列表)。

使用正常授权密钥文件是不可能的,因为用户没有绑定到特定节点,所以我正在寻找一种从数据库读取列表的方法(https://serverfault.com/a/443230/125948)。

问题在于授权密钥命令命令是它只传递用户名(这是我的情况 - 将是git对于所有用户),所以基本上我必须做一个SELECT pub_key FROM user并始终返回每个连接的整个列表。

这显然不是正确的解决方案,所以我在寻找另一种验证方式。基本上我的问题是:到底如何GitHub正在做那件事?

答案1

好的,找到答案了:https://github.com/blog/530-how-we-made-github-fast

他们实际上修补了 OpenSSH 以对 MySQL 服务器执行查找:https://github.com/norbauer/openssh-for-git

答案2

我认为他们有一个 TCP 代理来嗅探数据包,称为代理机

相关内容