Jak zarządzać bezpiecznym osobistym kluczem SSH?

14

Potrzebuję osobistego klucza ssh takiego, aby:

  • Mogę wykonać kopię zapasową jednego pliku zawierającego mój klucz prywatny i przywrócić go, gdy wykonam nową instalację.
  • Klucz prywatny nigdy nie jest przechowywany w postaci niezaszyfrowanej nigdzie, w tym w pliku, którego kopię zapasową tworzę i przywracam, ale z niezbędnym wyjątkiem mojej pamięci RAM podczas jej używania.
  • Ktoś z fizycznym dostępem do mojego komputera niekoniecznie musi używać mojego klucza prywatnego. Powinienem zostać poproszony o podanie hasła, zanim zadziała, najlepiej hasło do mojego konta użytkownika.
  • Nie jest konieczne tworzenie kopii zapasowej klucza publicznego. Powinienem być w stanie wygenerować to z klucza prywatnego (ale może potrzebować wystarczających informacji, aby go odszyfrować).

Wiem, że istnieje wiele zasobów wyjaśniających, jak używać narzędzi do zarządzania kluczami ssh. Jednak uważam je za dość złożone i udowodniłem, że nie byłem w stanie zapisać mojego klucza prywatnego podczas wykonywania nowych instalacji w przeszłości. Wolałbym więc usłyszeć najlepsze praktyki od osoby z doświadczeniem, która robi dokładnie to, co chcę.

Vincent Povirk
źródło

Odpowiedzi:

9

Przechodząc przez twoje punkty:

  • Po wygenerowaniu klucza SSH jest on zapisywany ~/.ssh/jako id_rsa(lub id_dsa). Możesz przenosić to z maszyny na maszynę, jak chcesz.

  • Możesz zapewnić jego szyfrowanie poprzez szyfrowanie /home/. Istnieje kilka zestawów instrukcji, jak to zrobić w Internecie, ale (sam nigdy tego nie robiłem) nie mogę szczerze zasugerować sobie nawzajem. Ten na UbuntuForums wydaje się równie dobry jak każdy inny. Wykonanie tego przy nowej instalacji jest łatwiejsze (możesz to zrobić w instalatorze), ale nie jest wymagane.

  • Po wygenerowaniu pary kluczy upewnij się, że ustawiłeś hasło. Oznacza to, że nawet jeśli ktoś otrzyma Twój klucz prywatny, nadal potrzebuje tego tokena, aby go użyć.

  • ssh-keygen -ewygeneruje skrót klucza publicznego z klucza prywatnego. Zrób tak, nie musisz tego robić (chociaż nie byłoby to trudne - jest przechowywane jako ~/.ssh/id_rsa.pub).

Oli
źródło
Czy ustawienie hasła nie jest traktowane jako szyfrowanie klucza?
Vincent Povirk
@Vincent Sortuj z pewnością. Nie jestem pewien, jak paranoik próbujesz tu być. Jeśli chcesz zminimalizować szansę, że ktoś zdobędzie klucz, umieść go w zaszyfrowanej partycji. Jeśli jesteś zadowolony z tego, że ludzie są w stanie go zdobyć (jeśli uzyskają fizyczny dostęp), ale nie mogą go użyć bez hasła, możesz pominąć ten krok.
Oli