2012-05-15 32 views
6

Vì vậy, tôi có một dự án (repo riêng) có nhiều mô-đun con (cũng là riêng tư). Tôi có một máy chủ được lưu trữ trên Amazon EC2 sẽ chứa dự án và tôi muốn sử dụng repo Github riêng của mình.Quyền bị từ chối lỗi khi sử dụng Github triển khai khóa

Tôi đã tạo khóa ssh cho dự án chính và thêm nó vào các khóa triển khai dự án. Tôi cũng tạo ra các khóa ssh bổ sung cho mỗi mô-đun con và thêm nó vào các khóa triển khai của chúng.

Khi tôi cố gắng và sao chép các dự án (sử dụng git @ github), nó không hoạt động:

Permission denied (PublicKey). gây tử vong: Kết thúc từ xa đã treo đột ngột

Tôi đã kiểm tra kỹ từng repo và các khóa triển khai của chúng và mọi thứ có vẻ chính xác. Có một số bước nhỏ khác tôi đang thiếu?

+0

Cổng 22 có mở không? 'Ssh -vT git @ github.com' nói gì? - http://help.github.com/ssh-issues/ –

+0

Heres kết quả (bên dưới) –

+0

OpenSSH_5.3p1, OpenSSL 1.0.0i-fips 19 Apr 2012 debug1: Đọc dữ liệu cấu hình/etc/ssh/ssh_config debug1 : Áp dụng các tùy chọn cho * debug1: Kết nối với github.com [207.97.227.239] cổng 22. debug1: Đã thiết lập kết nối. –

Trả lời

6

Câu trả lời ngắn gọn: không có cách nào dễ dàng để sử dụng khóa triển khai với mô-đun con riêng tư. Theo kinh nghiệm của tôi bạn có hai lựa chọn:

  1. tiếp tục sử dụng các môđun con nhưng ngừng sử dụng triển khai các phím và thay vào đó sử dụng một chìa khóa duy nhất cấp tài khoản SSH cho phép truy cập đến tất cả các kho riêng của bạn (dễ dàng hơn, kém an toàn)
  2. Dừng sử dụng các môđun con, tiếp tục sử dụng triển khai các phím, và tự git clone mỗi kho đi qua trong khóa bí mật SSH phù hợp với phím triển khai (phức tạp hơn, an toàn hơn)

lý do cho điều này là git clone gây nên một kết nối SSH mà chỉ có thể sử dụng một khóa riêng SSH duy nhất tại một thời điểm (ví dụ: ~/.ssh/id_rsa). Khóa riêng SSH được sử dụng phải khớp với khóa triển khai của kho lưu trữ - và các khóa triển khai phải là duy nhất cho mỗi dự án. Trong trường hợp của một bản sao submodule, bạn chỉ sử dụng một khóa riêng duy nhất. Chìa khóa đó có thể phù hợp với dự án cấp cao nhất của bạn, nhưng chắc chắn sẽ thất bại trong các dự án con với lỗi mà bạn cung cấp.

Hy vọng điều này hữu ích ..

+1

Tính đến 2 năm sau, vẫn chưa có giải pháp tốt hơn? – aledalgrande

+3

OK, đã tìm thấy: https://github.com/blog/1270-easier-builds-and-deployments-using-git-over-https-and-oauth – aledalgrande

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