Lý do duy nhất, minh họa bằng các workaround bạn tham khảo (tạo một đĩa đơn "xây dựng" người dùng hoặc chia sẻ cùng một id_rsa.REPONAME.pub
cho mỗi repo) là:
tránh chia sẻ công cộng/khóa riêng cho người dùng khác nhau
Mặc dù điều đó sẽ không phải là trường hợp trong tình huống của bạn (xây dựng nhiều dự án), cho phép tái sử dụng phím ssh cùng sẽ mở ra khả năng cho hai người dùng khác nhau để chia sẻ cùng một khóa ssh, điều này sẽ đánh bại mục đích xác thực .
Phương thức xác thực:
"sử dụng khóa ssh nhất định phải ngụ ý rằng bạn được yêu cầu phải biết ai đang sử dụng nó".
Các GitHub trang "Managing deploy keys" chi tiết các tài khoản khác nhau sử dụng ssh:
đại lý SSH chuyển tiếp: Đại lý giao nhận sử dụng các phím SSH đã được thiết lập trên máy tính phát triển địa phương khi bạn SSH vào máy chủ của bạn và chạy lệnh git.
Bạn có thể chọn cho phép các máy chủ từ xa truy cập vào tác nhân ssh cục bộ của bạn như thể nó đang chạy trên máy chủ.
Vì vậy, không cần sao chép khóa cá nhân của bạn trên máy chủ.
Người dùng máy: (đây là chiến lược "tài khoản giả") Đính kèm khóa vào tài khoản người dùng. Vì tài khoản này sẽ không được sử dụng bởi một con người, nó được gọi là người dùng máy.
Bạn sẽ đối xử với người dùng này giống như cách bạn làm với con người, đính kèm khóa vào tài khoản người dùng máy như thể đó là một tài khoản bình thường.
Cấp cho cộng tác viên tài khoản hoặc nhóm quyền truy cập vào các bản ghi mà họ cần quyền truy cập.
Vì vậy, một khóa riêng tư được liên kết với một "người dùng máy", mỗi máy chủ một máy chủ.
Triển khai khóa (mỗi khóa GitHub repo) Khóa SSH được lưu trữ trên máy chủ và cấp quyền truy cập vào một repo trên GitHub.
Khóa này được đính kèm trực tiếp vào repo thay vì tài khoản người dùng.
Thay vì truy cập cài đặt tài khoản của bạn, hãy truy cập trang quản trị của mục tiêu của repo.
Đi tới "Deploy Keys
" và nhấp vào "Add deploy key
". Dán khóa công khai vào và gửi.
Lần này, khóa ssh không được đính kèm với người dùng (mà bạn có thể cấp quyền truy cập cho nhiều repo), nhưng cho một repo.
Cấp quyền truy cập ssh cho một số repo sẽ tương đương với "người dùng máy".
Trong nhiệm kỳ của xác thực:
- sử dụng phím tương tự cho nhiều Repos là okay khi nó được thực hiện bởi một người dùng (trong đó đã cho biết chính liên quan đến tài khoản/mình)
- sử dụng cùng một chìa khóa cho một số repo là không ổn khi chìa khóa được gắn bởi một repo, bởi vì bạn không biết ở tất cả các người truy cập những gì.
Điều này khác với "người dùng máy", trong đó "người dùng" được khai báo là cộng tác viên cho nhiều repo.
Ở đây (Khóa triển khai), không có "cộng tác viên", chỉ là quyền truy cập ssh trực tiếp được cấp cho repo.
Vì không có cách nào tốt hơn, chúng tôi đã tạo người dùng triển khai chuyên dụng mà chúng tôi đang cấp quyền truy cập chỉ đọc vào kho lưu trữ. Kết quả cuối cùng là như nhau. – Datageek
Câu trả lời hay ở đây: http://stackoverflow.com/questions/11656134/github-deploy-keys-how-do-i-authorize-more-than-one-repository-for-a-single-mac – apple16