Obecnie mam klucz SSH, którego używałem od jakiegoś czasu i chciałbym zacząć używać GnuPG z nowym kluczem. Jednak biorąc pod uwagę, że używałem mojego klucza od wieków, chciałbym nadal używać tego klucza w GPG jako klucza głównego / podstawowego. Próbowałem zaimportować klucz za pomocą tych instrukcji .
Ale kończę na czymś, co uważa się za „podklucz”. Co więcej, jeśli spróbuję zaimportować go bez tworzenia standardowego klucza GPG, GPG nawet nie zobaczy tego podklucza. (Zakładam, że podklucz musi najpierw zostać podpisany przez klucz główny).
Jak używać tego klucza jako klucza głównego w secring.gpg?
Odpowiedzi:
Prosta odpowiedź brzmi: nie.
Klucze SSH i klucze GnuPG (właściwie OpenPGP) są zupełnie inne, mimo że oba protokoły mogą używać par kluczy RSA.
A poza tym, dlaczego chcesz to zrobić? Nawet jeśli użyjesz tego samego klucza do stworzenia klucza PGP, nadal będziesz musiał rozpowszechniać swój klucz jako klucz PGP. Prawdopodobnie nie rozpowszechniłeś swojego klucza publicznego SSH wśród osób, z którymi korespondujesz, więc z punktu widzenia dystrybucji klucza nie ma różnicy: będą musieli otrzymać od ciebie klucz publiczny. I nawet jeśli dystrybuujesz swój klucz publiczny SSH innym osobom, będą musiały podjąć dodatkowe kroki, aby móc zaimportować go do swojej implementacji OpenPGP, co może, ale nie musi być łatwe.
Jak słusznie zauważył kasperd, musi istnieć tylko jeden sposób interpretacji (szczególnie) podpisu. Jeśli miałbyś użyć tego samego klucza zarówno dla PGP, jak i SSH, gdyby ktoś mógł oszukać cię do podpisania specjalnie spreparowanej wiadomości (co jest zakładaną możliwością w niektórych atakach systemu sygnaturowego) w jednym, to nawet jeśli oba systemy są bezpieczne w izolacji może być możliwe wytworzenie takiego komunikatu w sposób, który ma jedno znaczenie w jednym z systemów, ale inne znaczenie w drugim. To samo w sobie byłoby podatnością na ataki. (Do wykorzystania? Kto wie. Ale po co ryzykować?)
Zarówno pary kluczy PGP, jak i SSH są kluczami długoterminowymi, które służą do zabezpieczania efemerycznych kluczy (wiadomości i sesji) symetrycznych, a także do weryfikacji autentyczności strony zdalnej. To sprawia, że klucz prywatny PGP lub SSH jest o wiele bardziej wartościowym celem dla atakującego niż odpowiedni klucz symetryczny. Jeśli użyjesz tego samego klucza do obu tych elementów, a atakujący zda sobie z tego sprawę, zwiększy to tylko wartość udanego ataku na tę parę kluczy.
Bez szczegółowego przyjrzenia się obu protokołom wyobrażam sobie, że uznanie, że ten sam materiał klucza jest używany w obu, byłoby prawdopodobnie dość trywialne, ponieważ klucz publiczny jest zasadniczo przesyłany w sposób wyraźny.
Po prostu wygeneruj nowy klucz PGP. Jeśli chcesz, ustaw RSA i tej samej długości co klucz SSH. (Żadna rozsądna osoba i tak nie przyjrzy się temu bliżej niż weryfikacja odcisku palca.) Następnie rozdaj klucz publiczny osobom, z którymi chcesz korespondować, jako klucz PGP. Będzie to znacznie łatwiejsze dla wszystkich, i prawdopodobnie bardziej bezpieczne, kosztem niewielkiej ilości entropii z losowej puli entropii twojego systemu, którą i tak należy szybko uzupełnić.
Jeśli masz wiele kluczy w tajnym breloku i chcesz określić, który z nich powinien być domyślnie używany, skorzystaj z dyrektyw
default-key
i ewentualniedefault-recipient{,-self}
w pliku ~ / .gnupg / gnupg.conf.źródło
Możesz przekonwertować klucz SSH na klucz OpenPGP za pomocą narzędzia
pem2openpgp
z projektu monkeysphere . Ten klucz może następnie zostać zaimportowany przez gnupg jako zwykła para kluczy prywatny / publiczny. Jak wspomniano w innej odpowiedzi, zwykle nie jest to dobry pomysł, ponieważ ssh nie ma pojęcia certyfikatów, więc skutecznie dodajesz możliwość do istniejącego klucza, którego wcześniej nie mógł mieć. W kryptografii jest to generalnie niemożliwe.I tak zrobiłem z jednym z moich kluczy ssh, ale dodałem parę kluczy do drugiego klucza OpenPGP jako podklucz, który ma tylko jedną flagę możliwości: uwierzytelnianie. Ta flaga jest przeznaczona do takich sytuacji, w których nie chcesz podpisywać ani szyfrować niczego za pomocą pary kluczy (znaczenie
--encrypt
i--sign
opcje dla gnupg), ale chcesz mieć ją w swojej skrzynce na klucze w celu uwierzytelnienia w OpenSSH i gnupg-agent.Aby uzyskać więcej informacji, zobacz dokumentację Monkeysphere.
źródło
Istnieją dobre powody, aby przekonwertować zwykły klucz w formacie PKCS do importowania do gpg.
Na przykład, jeśli chcesz umieścić go na karcie inteligentnej. Funkcje gpg, które udostępnia informacje o karcie i polecenia edycji karty, są bardzo pomocne w tym celu, więc dlaczego nie użyć go jako narzędzia? Jedyną przeszkodą, którą trzeba pokonać, jest ... a dokładnie: import klucza ze standardowego formatu PKCS # 8 (lub „surowego” formatu RSA PKCS # 1) do magazynu kluczy gpg w celu dalszego przetwarzania.
Więc - zwróć uwagę na mój sprzeciw wobec zatwierdzonej odpowiedzi! :)
Naprawdę pomocna odpowiedź na tego rodzaju pytanie znajduje się tutaj: /unix/276317/how-can-i-import-a-key-in-pem-format-not-openpgp-into -gpg
źródło
Użyj tego na Ubuntu 16.04 lub Windows WSL.
Importuj kartę. Można to zrobić w systemie Windows lub Linux.
Przenieś na kartę
Znajdź kluczowy identyfikator podpisu.
Przenieś klucz uwierzytelniający na kartę
Wybierz numer gniazda uwierzytelniania.
Skończysz tutaj.
Pamiętaj, aby usunąć klucz z pęku kluczy gpg, jeśli używasz karty. Użyj powyższego identyfikatora klucza.
Misc
Nie jest to konieczne, ale może być przydatne do uzyskania klucza w formacie tekstowym pgp.
źródło