2009-02-10 35 views
9

Tôi cần một ứng dụng để có thể tìm nạp từ kho lưu trữ git nhưng không đẩy nó vào, vì vậy, đó là phần chỉ đọc. Điều đó có thể dễ dàng được thực hiện với git daemon.Tôi có thể chạy máy chủ git được bảo vệ bằng mật khẩu, chỉ đọc không?

Trên hết, tôi cần quyền truy cập vào kho lưu trữ được bảo vệ bằng mật khẩu, bao gồm cả đọc nó. Vì vậy, trước khi tìm nạp bất kỳ có thể xảy ra, ứng dụng sẽ cần phải xác thực.

Có thể thực hiện được không? với git daemon? thứ gì khác? http + auth có thể?

+0

Ý bạn là tìm nạp nhưng không kéo? kéo chỉ là tìm nạp + hợp nhất cục bộ. pull là một hoạt động chỉ đọc, trừ khi tôi đang thiếu thứ gì đó. –

+0

oops, có nghĩa là đẩy, không kéo. – kch

Trả lời

2

Cách dễ nhất là thiết lập xác thực HTTP trên đầu trang của gitweb. Xem there.

6

Xác thực HTTP sẽ không bảo vệ gói được truyền qua dây, vì vậy nếu bạn lo lắng về việc nghe trộm HTTP xác thực sẽ không đủ. Ngoài ra, git hiệu quả hơn nhiều khi sử dụng giao thức git so với giao thức HTTP. git-daemon, tuy nhiên, không thực hiện xác thực cho bạn.

Có lẽ giải pháp tốt nhất là sử dụng gitosis sẽ cho phép bạn bảo vệ kho lưu trữ bằng cách sử dụng xác thực mạnh mẽ và bảo mật qua dây - và kiểm soát quyền truy cập vào kho lưu trữ (ví dụ: -write và một số người dùng chỉ đọc). Điều này sẽ sử dụng giao thức git hiệu quả trên kết nối ssh của bạn.

Nếu bạn sẵn sàng thuê ngoài, github có lẽ là cách tiếp cận tốt nhất. Họ có kế hoạch ở các mức giá khác nhau để đáp ứng nhiều nhu cầu.

+0

Tôi có tài khoản github miễn phí mà tôi sử dụng cho các dự án đang mở của mình. Họ có công cụ để xử lý xác thực/ủy quyền vượt quá ssh trong các tài khoản trả phí không? – kch

+0

Hm, khi kiểm tra thêm, có vẻ như họ không hỗ trợ truy cập chỉ đọc được xác thực; danh sách kế hoạch của họ là http: // github.com/plan và bạn có thể liên hệ với [email protected] nếu có thắc mắc. –

0

Bạn có thể tìm nạp thông qua SSH, cả kênh được xác thực và mã hóa. Tôi không biết nếu gitosis sẽ giúp bạn quản lý các acces SSH thay vì thiết lập các tài khoản shell với git-shell làm shell.

0

Để tạo kho lưu trữ "chỉ đọc", cung cấp quyền truy cập SSH vào kho lưu trữ cho tất cả các bên hiện hành nhưng chỉ cho phép yêu cầu đẩy (ghi truy cập) vào nhóm phụ của các bên bằng cách sử dụng móc cập nhật là exampled here.

0

Sử dụng gitolite. Đó là điều tốt nhất: dễ cài đặt (nếu bạn đã biết quản lý khóa SSH), kiểm soát hoàn toàn quyền truy cập của người dùng và bảo mật giao thông (SSH).

0

Tôi thích có một sự kết hợp ra khỏi git + gitolite + gitweb

  • nơi gitweb đưa ra một rất nạc và nhanh chóng webfrontend

  • và gitolite đang làm tất cả các nhiệm vụ uỷ quyền , do đó, bạn có thể cấp quyền đọc hoặc ghi trên cấp độ người dùng (ssh) (ngay cả cấu hình của gitolite cũng được handeled như một kho lưu trữ đơn giản git , điều đó có nghĩa là, thay đổi cấu hình/ẩn danh là có thể theo dõi)

Các vấn đề liên quan