Làm thế nào tốt ủy quyền quy mô?


11

Nếu tôi đang sử dụng một cái gì đó như gitolite để xử lý kiểm soát truy cập thì ủy quyền quy mô như thế nào? Có nghĩa là nếu tôi nói 50.000 người dùng thì hiệu suất sẽ như thế nào (tôi đoán là không tốt lắm). Các lựa chọn thay thế là gì?

Cập nhật: Tôi quyết định tự thực hiện một số thử nghiệm (điều mà lẽ ra tôi nên làm ngay từ đầu). Tôi đã viết một tập lệnh đơn giản để tạo các khóa SSH và thêm chúng vào tệp ủy quyền. Máy tính của tôi không nhanh như vậy nên tôi chỉ tạo được 8.061 khóa và sau đó thêm khóa của riêng tôi vào cuối, tệp kết thúc là 3,1 MB. Sau đó tôi đã thêm một kho git với một tệp và chạy git clone ba lần:

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

Hiệu suất tốt hơn nhiều so với tôi nghĩ. Tôi vẫn rất quan tâm đến bất kỳ giải pháp thay thế nào có thể hiệu quả nhanh hơn cho một nhóm lớn hơn 50.000 khóa.


Bạn đang mong đợi để có 50000 simulatenious người dùng đến một máy chủ duy nhất hoặc tổng số 50000 cho người dùng với quyền truy cập không thường xuyên?
Mxx

Truy cập lẻ tẻ. Tôi đang hỏi về hiệu suất của máy chủ SSH phải tìm kiếm tệp ủy quyền có 50.000 khóa trên mỗi lần đăng nhập.
Jeremy

3
Một authorized_keystệp có khóa 50k chỉ khoảng 25MB. Chắc chắn điều đó sẽ được lưu hoàn toàn vào bộ đệm hệ thống tập tin. Tôi tưởng tượng thời gian để tìm khóa trong tệp sẽ bị thu hẹp theo thời gian để thực sự sử dụng khóa đó để xác thực người dùng.
cjc

Câu trả lời:


7

Bạn thực sự có thể thấy hiệu quả trên GitHub như thế nào là nhanh như thế này. Bạn sẽ không gây ra một nút cổ chai đáng kể với nhiều khóa đó.

Mặc dù như được ghi lại trong blog của họ từ năm 2009 , họ đã thay đổi cách lấy các khóa ssh, từ cơ sở dữ liệu. Lời khuyên về mũ: @Jeremey

Nhưng, bạn đã tạo hơn 8k khóa, bạn có thể kiểm tra lại bằng các phím 50k.

Các khóa đó không cần phải là khóa hợp lệ, chỉ cần viết một trình tạo và viết tệp và sau đó nối các khóa của bạn vào cuối.


2
Đồng ý rằng OP chỉ nên kiểm tra tệp khóa 50K với phần cứng của mình. Tôi không chắc liệu GitHub có phải là một ví dụ tuyệt vời hay không: ai biết họ làm gì trong phần phụ trợ? Đối với tất cả những gì chúng ta biết, họ có một sshd tùy chỉnh lưu trữ ủy quyền_key trong Redis.
cjc

Có lẽ, nhưng họ khá hay nói về những gì họ đang làm việc, và các trang web lớn hơn khác phục vụ các kho git công cộng sử dụng gitolab đã không đề cập đến nó. Tất nhiên không đáng giá bao nhiêu, nhưng tôi chưa thấy đề cập đến nó.
vgoff

Gerrit tự hào về một tra cứu khóa ssh được tối ưu hóa, nói rằng nó phải nhanh hơn Gitosis. Tôi không biết về dự án Gerrit.
vgoff

1
Tôi tìm thấy một bài viết về cách hoạt động của github: github.com/blog/530-how-we-ADE-github-fast . Họ sử dụng máy chủ SSHD được vá để lấy các khóa từ máy chủ MySQL.
Jeremy

2
hãy xem tùy chọn AuthorizedKeysCommand trên sshd_config
Lluís
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.