Jak mogę pobrać klucz publiczny z klucza prywatnego SSH?

365

Klucz prywatny SSH wygenerowany przez ssh-keygen zawiera część klucza publicznego. Jak mogę pobrać ten klucz publiczny z klucza prywatnego? Zgubiłem klucz publiczny i muszę umieścić zawartość tego klucza publicznego w pliku authorized_keys serwerów i nie chcę tworzyć nowej pary kluczy.

Wyrażenie alternatywne: w jaki sposób utworzyć plik id_rsa.pub z pliku id_rsa ?

    
zadawane Lekensteyn 18.07.2011, 11:57
źródło

2 odpowiedzi

561

Znalazłem odpowiedź na błąd serwera: Utwórz publiczny klucz SSH z klucza prywatnego?

Opcja -y wyświetla klucz publiczny:

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

Na marginesie, komentarz klucza publicznego zostaje utracony. Mam witrynę, która wymaga komentarza (Launchpad?), Więc musisz edytować ~/.ssh/id_rsa.pub i dołączyć komentarz do pierwszej linii z odstępem między komentarzem a danymi kluczowymi. Przykładowy klucz publiczny jest pokazany jako skrócony poniżej.

ssh-rsa AAAA..../VqDjtS5 ubuntu@ubuntu

Dla kluczy, które zostały dodane do agenta SSH (program działający w tle i unikający ponownego wpisywania hasła klucza), możesz użyć polecenia ssh-add -L , aby wyświetlić listę kluczy publicznych dla kluczy, które zostały dodane do agenta (przez ssh-add -l ). Jest to przydatne, gdy klucz SSH jest zapisany na karcie inteligentnej (a dostęp do pliku klucza prywatnego nie jest możliwy).

    
odpowiedział Lekensteyn 18.07.2011, 12:12
źródło
12

To rozwiązanie jest przeznaczone specjalnie dla użytkowników używających systemu Windows do obsługi SSH na swoich komputerach zdalnych, w tym obrazów w chmurze na Amazon AWS i GCE.

(Zastrzeżenie)

Ostatnio użyłem tego rozwiązania do zdalnego logowania się do nowych wdrożonych obrazów maszyn wirtualnych w GCE.

Używane narzędzia:

  1. puttygen
  2. WinSCP

Kroki do wykonania:

  1. Wygeneruj parę kluczy publiczny / prywatny za pomocą puttygen.
  2. Prześlij klucz publiczny do swojego serwera w chmurze lub zdalnej lokalizacji.

Opis (jak to zrobić):

  1. Wygeneruj klucz / parę lub użyj istniejącego klucza prywatnego:

    Jeśli masz klucz prywatny:

    Otwórz puttygen, naciśnij przycisk ładowania i wybierz plik klucza prywatnego (* .pem).

    Jeśli nie masz klucz prywatny:

    • Otwórz puttygen,
    • Wybierz żądany typ klucza SSH2 DSA (możesz użyć RSA lub DSA) w sekcji Parametry ... i ważne jest, aby pozostawić puste pole hasła,
    • Naciśnij przycisk generuj i postępuj zgodnie z instrukcjami, aby wygenerować parę kluczy (publiczny / prywatny).

  2. Utwórz nowy plik "authorized_keys" (z Notatnikiem):

    Skopiuj dane klucza publicznego z "Klucz publiczny do wklejania do pliku klucza autoryzowanego OpenSSH" Generatora kluczy PuTTY i wklej kluczowe dane do pliku "authorized_keys".

    Upewnij się, że w tym pliku znajduje się tylko jeden wiersz tekstu.

  3. Prześlij klucz do serwera Linux:

    • Otwórz WinSCP,
    • Wybierz protokół pliku SFTP i zaloguj się przy użyciu poświadczeń SSH.
    • Po sukcesie widzisz strukturę katalogu domowego na swoim zdalnym komputerze.

    Prześlij plik authorized_keys do katalogu domowego na zdalnym komputerze.

  4. Ustaw odpowiednie uprawnienia:

    Utwórz katalog .ssh (jeśli nie istnieje)

    Skopiuj plik authorized_keys do katalogu .ssh (to zastąpi istniejący plik authorized_keys , zanotuj to).

    Jeśli plik istnieje, po prostu dodaj zawartość tego pliku do istniejącego pliku.

    Uruchamiaj polecenia, aby ustawić uprawnienia:

    sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys
    

Teraz będziesz mógł korzystać z ssh na zdalnej maszynie bez konieczności wprowadzania danych za każdym razem.

Dalszy odczyt:

  1. Generowanie i przesyłanie kluczy SSH w systemie Windows

  2. Uwierzytelnianie bez hasła przy użyciu OpenSSH Klucz, certyfikaty .pem i .pub

odpowiedział devprashant 20.11.2015, 07:18
źródło

Przeczytaj inne pytania na temat tagów