2011-08-17 42 views
19

Tôi đã tự hỏi liệu có ai có cách tốt, sạch, an toàn để quản lý truy cập kho lưu trữ Tổ chức github trên máy chủ của họ không?quản lý khóa công khai ssh trên kho lưu trữ tổ chức github

Dường như bạn chỉ có thể đính kèm khóa pub vào tài khoản cá nhân của mình và không thể hạn chế quyền truy cập chỉ cho một tổ chức.

Chúng tôi có máy chủ beta nơi chúng tôi đặt nhiều dự án để triển khai khóa, vì chúng cần phải là duy nhất, không lý tưởng. Sẽ tốt hơn nếu cung cấp quyền truy cập toàn cầu cho tổ chức, nhưng tôi không muốn cung cấp cho máy chủ, chúng tôi có dịch giả tự do, truy cập đầy đủ vào tài khoản cá nhân của tôi (Máy chủ được quyền truy cập vào tổ chức, điều này tốt cho các dự án cá nhân của tôi và mọi tổ chức khác mà tôi thuộc về, điều đó là xấu).

Hai cách giải quyết khác nhau mà tôi thấy là thiết lập người dùng github giả mạo đi qua, có vẻ ngu ngốc, hoặc để cho phép chuyển tiếp đại lý ssh, cảm giác như một nguy cơ bảo mật (tôi không phải là quản trị viên máy chủ tốt nhất).

Một người bạn đã đề xuất thiết lập máy chủ làm điều khiển từ xa để đẩy tới, nhưng có vẻ như giải pháp băng thông.

Tôi muốn nghĩ rằng có một cách dễ dàng hơn để thiết lập quyền truy cập cho repo của tổ chức vì tôi cho rằng đó sẽ là nhu cầu cơ bản đối với mọi người.

Tôi là tất cả các tai nếu có ai muốn chia sẻ điều gì đó có/đang làm việc cho tổ chức github của họ.

Tôi có thể sẽ chỉ cắn đạn và tạo người dùng github giả và gọi nó là một ngày, tôi cần hoàn thành công việc.

+0

Tại sao bạn cho rằng chuyển tiếp đại lý là một nguy cơ bảo mật? Bạn không hiểu nó hoạt động như thế nào? – Tekkub

Trả lời

6

một thay thế cho câu trả lời từ sergey_mo (và như là một câu trả lời trực tiếp câu hỏi cuối cùng Michał Szajbe của) là tạo ra nhiều phím ssh như ghi nhận bởi chalien trên githib:

https://gist.github.com/jexchan/2351996

+1

Câu trả lời cũ, tôi biết ... Nhưng đây là [liên kết hoạt động] (https://gist.github.com/jexchan/2351996) (Tôi giả sử đó là tài liệu/thông tin ban đầu được liên kết trong câu trả lời ở trên). – mhulse

+0

Tôi vừa cập nhật liên kết trong bài đăng. –

2

Tôi không hiểu lý do tại sao việc thêm tài khoản giả quá xấu để triển khai tự động, miễn là bạn chạy máy chủ beta của riêng mình làm khu vực dàn dựng trước khi chuyển sang GitHub. Tức là, nếu bạn muốn đặt cược là riêng tư.

Cách GitHub thông thường sẽ là thêm tất cả cộng tác viên và chỉ đơn giản là có dự án ổn định và bản ngã beta. Bạn sẽ tự động kéo phiên bản beta hiện tại lên máy chủ beta của mình để thử nghiệm (không cần khóa ssh ở đó) và nếu các thử nghiệm của bạn thành công, bạn kéo các hợp nhất từ ​​ngã ba beta vào dự án ổn định.

+0

Tôi đoán đó không phải là điều tồi tệ nhất trên thế giới, tôi chỉ hy vọng có thể quản lý quyền truy cập của tổ chức bằng một tài khoản mà không cần phải sắp xếp các đăng nhập như tôi đã từng sử dụng. Điều này khá hợp lý mặc dù các tổ chức không phải là người dùng. Cảm ơn các đầu vào. – digitaldreamer

+1

Vấn đề là, nếu bạn sử dụng tài khoản giả trong bất kỳ DVCS nào, bạn sẽ không thể đổ lỗi hoặc chú thích/ai đã làm gì, rất tiện dụng là một trong những tài khoản bị tấn công và bạn không phải gửi khóa mới cho mọi người . – Lars

0

Bạn có thể giải quyết vấn đề này bằng cách để các ứng dụng của bạn chạy bởi những người dùng khác nhau (một người dùng cho mỗi ứng dụng). Tôi có nghĩa là người dùng máy chủ, không phải người dùng github. Đó là một thực hành tốt anyway trên các máy chủ đa ứng dụng.

Mỗi người dùng sau đó có cặp khóa ssh riêng của nó, vì vậy bạn có nhiều khóa triển khai duy nhất (một khóa cho mỗi repo github).

Tôi sử dụng phương pháp này bất cứ khi nào có thể. Tuy nhiên, có nhiều trường hợp khi nhiều ứng dụng được điều hành bởi một người dùng và có thể không thể thực hiện được bằng các khóa triển khai của github. Tôi cũng đang tìm kiếm một giải pháp tốt cho những trường hợp như vậy.

1

lưu ý nhỏ về CI:
Ví dụ, nếu bạn sử dụng Jenkins và bạn cần nó để truy cập vào nhiều hơn sau đó 1 dự án, bạn sẽ cần phải:
1. thêm khóa công khai với một tài khoản người dùng github
2. add người dùng này là Chủ sở hữu (để truy cập tất cả các dự án) hoặc là Cộng tác viên trong mọi dự án.

Nhiều khóa công khai cho một người sử dụng hệ thống sẽ không làm việc vì GitHub sẽ tìm thấy đầu tiên xuất hiện triển khai chính và sẽ gửi lại báo lỗi như "ERROR: Cho phép người dùng/repo2 từ chối để người dùng/repo1"

http://help.github.com/ssh-issues/

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