authorized_keysはどの程度拡張できますか?


11

アクセス制御を処理するためにgitoliteのようなものを使用している場合、authorized_keysはどれだけうまく拡張できますか?50,000人のユーザーがパフォーマンスがどのようになるかを言った場合の意味です(あまり良くないと思います)。代替手段は何ですか?

更新: 私は自分でいくつかのテストを行うことにしました(そもそもこれを行うべきでした)。SSHキーを生成し、それらをauthorized_keysファイルに追加する簡単なスクリプトを作成しました。私のコンピューターはそれほど高速ではないので、8,061個のキーを生成し、最後に自分のキーを追加しただけで、ファイルは3.1MBになりました。次に、1つのファイルでgitリポジトリを追加し、git cloneを3回実行しました。

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人のサーバーに対して50000人の擬似ユーザー、または散発的なアクセスを持つ合計50000人のユーザーを期待していますか?
Mxx

散発的なアクセス。ログインごとに50,000個のキーを持つauthorized_keysファイルを検索する必要があるSSHサーバーのパフォーマンスについて質問しています。
ジェレミー

3
authorized_keys50kキーのファイルは約25MBです。確かに、ファイルシステムのバッファーに完全にキャッシュされます。ファイル内のキーを見つける時間は、ユーザーを認証するためにそのキーを実際に使用する時間よりも短くなると思います。
-cjc

回答:


7

実際に、GitHubでこれがどれほど高速であるかを確認できます。その数のキーで重大なボトルネックを引き起こすことはありません。

ようものの2009年から自分のブログに記載さ、彼らはデータベースから、SSHキーを取得する方法を変更しました。帽子のヒント:@Jeremey

ただし、8k以上のキーを作成したため、50kキーで再度テストできます。

これらのキーは有効なキーである必要はなく、ジェネレータを作成してファイルを作成し、最後に追加します。


2
OPは自分のハードウェアで50Kキーファイルをテストするだけでよいことに同意しました。GitHubが良い例かどうかはわかりません。バックエンドで何をしているのか誰が知っているのでしょうか?私たちが知っている限りでは、authorized_keysをRedisに保存するカスタマイズされたsshdがあります。
cjc

おそらく、しかし、彼らは彼らが取り組んでいるものについてかなり声高であり、gitolabを使用して公開gitリポジトリを提供している他の大きなサイトはそれについて言及していません。もちろん、それほどの価値はありませんが、私はそれについて言及していません。
vgoff

ただし、Gerritは最適化されたsshキールックアップを誇り、Gitosisよりも高速である必要があると述べています。Gerritプロジェクトについては知りませんでした。
vgoff

1
:私はgithubのがどのように機能するかについての記事見つけgithub.com/blog/530-how-we-made-github-fastを。MySQLサーバーからキーを取得するパッチが適用されたSSHDサーバーを使用します。
ジェレミー

2
sshd_configの上AuthorizedKeysCommandオプションを見てみましょう
リュイス・
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.