Utworzyć publiczny klucz SSH z klucza prywatnego?

215

Załóżmy, że mam klucz SSH, ale usunąłem część klucza publicznego. Mam część klucza prywatnego. Czy jest jakiś sposób na ponowne wygenerowanie części klucza publicznego?

Rory
źródło

Odpowiedzi:

253

Użyj opcji -y, aby ssh-keygen:

ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub

Z „man ssh-keygen”

 -y      This option will read a private OpenSSH format file and print an
         OpenSSH public key to stdout.

Podaj klucz prywatny za pomocą opcji -f, twój może być dsa zamiast rsa. Nazwa twojego klucza prywatnego prawdopodobnie zawiera dane, których użyłeś. Nowo wygenerowany klucz publiczny powinien być taki sam jak wcześniej wygenerowany.

Kyle Brandt
źródło
7
Dlaczego „-t dsa”? Mayge klucz OP to rsa? Pozbyłem się -t i zamiast tego użyłem -f.
innaM
1
Dobry punkt, odpowiednio zaktualizowany
Kyle Brandt,
tak, mój pierwotnie był RSA.
Rory,
1
W systemie Mac OSX 10.9.3 Mavericks dostaję komunikat „ładowanie nie powiodło się” po uruchomieniu polecenia. Jak to rozwiązać?
Hyperfocus
Myślę, że możesz pójść o krok dalej z parametrem -N w przypadku, gdy klucz prywatny jest chroniony hasłem:ssh-keygen -f ~/.ssh/id_rsa -y -N "$PASSWORD" > ~/.ssh/id_rsa.pub
Ken
6

Rozwiązanie jest specjalnie dla użytkowników korzystających z systemu Windows

Użyte narzędzie:

  • Puttygen (Generator kluczy PuTTY)
  • WinSCP

Kroki do wykonania:

  1. Otwórz Generator kluczy PuTTY.
  2. Załaduj swój klucz prywatny ( *.ppkplik).
  3. Skopiuj dane klucza publicznego z sekcji „Klucz publiczny do wklejenia do pliku kluczy autoryzowanych OpenSSH” generatora kluczy PuTTY i wklej dane klucza do pliku „kluczy autoryzowanych” (używając notatnika), jeśli chcesz go użyć.

Migawka pokazująca fragmenty Puttygen do skupienia:

Migawka pokazująca fragmenty Puttygen do skupienia

devprashant
źródło
Dalsza lektura: askubuntu.com/questions/53553/…
devprashant
Puttygen może także „importować” klucze prywatne w formacie OpenSSH (tak naprawdę starsza wersja OpenSSL) i SSHCOM. I choć powstał w systemie Windows, został również przeniesiony do systemu Unix, a jego wersja puttygenjest programem wiersza polecenia (nie GUI); patrz np. linux.die.net/man/1/puttygen
dave_thompson_085