2010-07-04 37 views
8

Tôi đọc số this article which explained very well how to setup pgp on osx, nhưng tôi định sử dụng các khóa đã tạo để ký cam kết git, vì vậy tôi cho rằng tôi cần chuyển các khóa sang máy tính khác của mình. Điều này có đúng không? và nếu vậy làm thế nào để tôi đi về chuyển giao các phím?Làm cách nào để chuyển khóa riêng tư & công cộng pgp sang một máy tính khác?

+0

Máy tính nào khác? Tại sao bạn cần hai máy tính cho điều này? – igorw

+1

Tôi thực sự có 3 comps, một win/mac/ubuntu, và tôi lập trình trên tất cả chúng, và do đó cần ký refs trong git với cùng một chữ ký, vì vậy tôi giả sử tôi cần phải chuyển các khóa pgp, phải không? – erikvold

+0

igorw, rất nhiều? – shieldstroy

Trả lời

32

Có, bạn sẽ cần chuyển khóa. Mac và Linux hoạt động tương tự, lưu trữ các khóa trong ~/.gnupg. Cách an toàn nhất để chuyển các tập tin được sử dụng scp (một phần của ssh):

scp -rp ~/.gnupg othermachine: 

Tuy nhiên, bạn sẽ cần phải có ssh làm việc đầu tiên.

Chuyển chúng bằng ổ USB flash không phải là một ý tưởng tuyệt vời vì khóa riêng tư của bạn sẽ bị bỏ lại sau ổ đĩa đó ngay cả sau khi bạn đã xóa tệp. Mặc dù nó được bảo vệ bởi một cụm từ mật khẩu, nếu ai đó đã giữ một bản sao của tập tin quan trọng họ có thể gắn kết một cuộc tấn công brute-lực dài chạy vào nó tại lesiure của họ.

Tôi không biết vị trí của thư mục trên Windows. Các tài liệu gpg sẽ nói, và các nội dung gần như chắc chắn sẽ giống nhau.

Sao chép toàn bộ vòng khoá nhanh chóng và dễ dàng, nhưng đôi khi bạn muốn có thể di chuyển các khóa riêng lẻ giữa các máy mà không ghi đè toàn bộ khóa và mất các khóa đã có. Sao chép từng khóa riêng lẻ có thể được thực hiện với gpg --export-secret-keygpg --import. Nếu bạn có quyền truy cập ssh vào máy đích bạn có thể làm điều này với một đường ống và không cần phải lưu trữ một chìa khóa trung gian bất cứ nơi nào:

Nếu bạn đang ở trên máy mà đã có chìa khóa:

gpg --export-secret-key SOMEKEYID | ssh othermachine gpg --import 

Nếu bạn đang ở trên máy mà cần chìa khóa:

ssh othermachine gpg --export-secret-key SOMEKEYID | gpg --import 

Nếu gpg không thuộc một trong những nơi mặc định trên máy từ xa (ví dụ như nó ở /opt/local/bin trên máy Mac), bạn sẽ phải cho đường dẫn đầy đủ của nó vào ssh, hoặc liên kết nó vào một trong các các địa điểm tiêu chuẩn như /usr/local/bin.

Lưu ý rằng dữ liệu được truyền vẫn được bảo vệ bằng cụm mật khẩu và khóa sẽ có cùng một cụm mật khẩu tại đích như ở nguồn. Nếu bạn muốn có các mật khẩu khác nhau ở mỗi địa điểm, bạn sẽ cần thay đổi cụm mật khẩu tại đích hoặc thay đổi mật khẩu tạm thời tại nguồn trước khi xuất. Tôi cần chia sẻ một khóa bí mật với một đồng nghiệp, để cho anh ta khả năng cập nhật gói repo Debian mà cả hai chúng tôi quản lý, nhưng tôi không muốn chia sẻ cụm mật khẩu của tôi với anh ấy. Vì vậy, tôi đã thay đổi cụm từ mật khẩu thành một cái gì đó tạm thời, gửi cho anh ta khóa đã xuất (bằng email được mã hóa bằng gpg!), Nói cho anh ta cụm mật khẩu tạm thời bằng lời nói và yêu cầu anh ta đặt cụm mật khẩu mới ngay sau khi nhập khóa. Sau đó tôi đã thay đổi cụm từ mật khẩu trên bản sao chìa khóa của mình về những gì ban đầu.

+1

"Chuyển chúng với, nói rằng, một ổ đĩa flash USB không phải là một ý tưởng tuyệt vời vì khóa riêng của bạn sẽ bị bỏ lại phía sau ổ đĩa đó ngay cả sau khi bạn đã xóa tập tin." Vâng, nếu bạn là * vì vậy * hoang tưởng, bạn luôn có thể mã hóa các khóa bằng một số mật mã đối xứng để truyền. –

+0

Ý tưởng hay! Cảm ơn. –

+3

Khóa riêng tư đã được mã hóa bằng cụm mật khẩu bạn đã cung cấp khi mã hóa nó. Mã hóa nó một lần nữa không làm cho nó an toàn hơn. –

-2

Tùy thuộc vào phần mềm PGP. Tất cả những gì bạn cần làm - là để tìm thấy, nơi tập tin keyrings của bạn được đặt trên thực tế, và sao chép những tập tin đó vào máy tính mới. Hoặc, xuất các khóa của bạn từ phần mềm PGP và nhập chúng ở phía bên kia.

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