2010-07-04 74 views
8

Czytam this article which explained very well how to setup pgp on osx, ale zamierzam użyć wygenerowanych kluczy do podpisywania zatwierdzeń git, więc myślę, że muszę przenieść klucze do mojego drugiego komputera. Czy to jest poprawne? a jeśli tak, to w jaki sposób mam zamiar przenieść klucze?Jak przenieść klucz prywatny i publiczny pgp na inny komputer?

+0

Który inny komputer? Dlaczego potrzebujesz do tego dwóch komputerów? – igorw

+1

Mam 3 kompy, jedną win/mac/ubuntu, i programuję na nich wszystkich, a więc potrzebuję podpisów w git z tym samym podpisem, więc zakładam, że muszę przenieść klucze pgp, prawda? – erikvold

+0

igorw, wścibski? – shieldstroy

Odpowiedz

32

Tak, musisz przenieść klucze. Mac i Linux działają tak samo, przechowując klucze w ~/.gnupg. Najbezpieczniejszym sposobem przesyłania plików używa scp (część SSH):

scp -rp ~/.gnupg othermachine: 

Jednak trzeba mieć ssh pracy w pierwszej kolejności.

Przesyłanie ich za pomocą, powiedzmy, dysku flash USB nie jest świetnym pomysłem, ponieważ Twój klucz prywatny pozostanie na tym dysku nawet po usunięciu pliku. Mimo że jest chroniona hasłem, jeśli ktoś dostanie kopię pliku klucza, może zamontować długotrwały ataki brutalną siłą na ich własne zabezpieczenia.

Nie wiem o lokalizacji katalogu w systemie Windows. Dokumentacja gpg powie, a zawartość prawie na pewno będzie taka sama.

Kopiowanie całej breloczki jest szybkie i łatwe, ale czasami chcesz mieć możliwość przenoszenia poszczególnych klawiszy między maszynami bez nadpisywania całego klucza i utraty kluczy, które już tam są. Kopiowanie poszczególnych klawiszy selektywnie można wykonać za pomocą gpg --export-secret-key i gpg --import. Jeśli masz ssh dostęp do urządzenia docelowego można to zrobić z rurą i nie potrzebują do przechowywania klucza pośredniego wszędzie:

jeśli jesteś na komputerze, który ma już klucz:

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

Jeśli na komputerze, który potrzebuje klucza:

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

gpg Jeśli nie znajduje się w jednym z miejsc domyślnych na zdalnej maszynie (np to w /opt/local/bin na Macu) będziesz musiał podaj pełną ścieżkę do ssh lub dowiązanie symboliczne do jednego z nich standardowe miejsca, takie jak /usr/local/bin.

Należy pamiętać, że przesyłane dane są nadal chronione hasłem, a klucz będzie miał to samo hasło w miejscu docelowym, co w źródle. Jeśli chcesz mieć różne hasła w każdym miejscu, musisz zmienić hasło w miejscu docelowym lub zmienić je tymczasowo u źródła przed wyeksportowaniem. Musiałem podzielić się sekretnym kluczem z kolegą, aby dać mu możliwość aktualizacji repozytorium pakietów Debiana, którym obaj zarządzamy, ale nie chciałem udostępniać mu mojego hasła. Więc zmieniłem hasło na coś tymczasowego, wysłałem mu wyeksportowany klucz (pocztą zaszyfrowaną przez gpg!), Przekazałem mu tymczasowe hasło w formie ustnej i poprosiłem go o ustawienie nowego hasła zaraz po zaimportowaniu klucza. Następnie zmieniłem hasło w mojej kopii klucza z powrotem do tego, co było pierwotnie.

+1

"Przesyłanie ich za pomocą, powiedzmy, dysku flash USB nie jest świetnym pomysłem, ponieważ twój prywatny klucz pozostanie na tym dysku nawet po usunięciu pliku." Cóż, jeśli jesteś * tak * paranoikiem, zawsze możesz zaszyfrować klucze za pomocą jakiegoś symetrycznego szyfru do transferu. –

+0

Dobry pomysł! Dzięki. –

+3

Klucz prywatny jest już zaszyfrowany przy użyciu hasła podanego podczas szyfrowania. Szyfrowanie go ponownie nie czyni go bezpieczniejszym. –

-2

To zależy od oprogramowania PGP. Wszystko, co musisz zrobić - to znaleźć, gdzie pliki kluczy są fizycznie zlokalizowane, i skopiować te pliki na nowy komputer. Lub wyeksportuj klucze z oprogramowania PGP i zaimportuj je po drugiej stronie.