Wygenerowany przez klucz prywatny SSH ssh-keygen
zawiera część klucza publicznego. Jak odzyskać ten klucz publiczny z klucza prywatnego? Zgubiłem swój klucz publiczny i muszę umieścić zawartość tego klucza publicznego w authorized_keys
pliku serwerów i nie chcę tworzyć nowej pary kluczy.
Alternatywnie: jak utworzyć id_rsa.pub
plik z id_rsa
pliku?
command-line
ssh
Lekensteyn
źródło
źródło
pbcopy > ~/.ssh/id_rsa.pub
ups.Odpowiedzi:
Znalazłem odpowiedź na temat błędu serwera: utworzyć publiczny klucz SSH z klucza prywatnego?
Opcja
-y
generuje klucz publiczny:Na marginesie, komentarz klucza publicznego został utracony. Mam witrynę, która wymagała komentarza (Launchpad?), Więc musisz edytować
~/.ssh/id_rsa.pub
i dołączyć komentarz do pierwszego wiersza ze spacją między komentarzem a kluczowymi danymi. Przykładowy klucz publiczny pokazano poniżej.W przypadku kluczy, które zostały dodane do agenta SSH (program, który działa w tle i unika potrzeby ponownego wprowadzania hasła pliku
ssh-add -L
kluczy w kółko), możesz użyć polecenia, aby wyświetlić listę kluczy publicznych dla kluczy, które zostały dodane do agent (przezssh-add -l
). Jest to przydatne, gdy klucz SSH jest przechowywany na karcie inteligentnej (a dostęp do pliku klucza prywatnego nie jest możliwy).źródło
~/.ssh/id_rsa
musi być ograniczony do Twojej nazwy użytkownika. użyj$ sudo chmod 600 ~/.ssh/id_rsa
i wprowadź swoje poświadczenia root, aby je ograniczyć, a następnie możesz wydrukować plik klucza publicznego. W przeciwnym razie otrzymasz nieograniczone ostrzeżenie o pliku klucza prywatnego.sudo
, musisz już posiadać klucz prywatny. W przeciwnym razie nie możesz go przeczytać w pierwszej kolejności.400
Jest również zalecane, ponieważ nie trzeba pisać, aby wpisać plik klucza prywatnego. Poprawione polecenie powinno brzmieć$ chmod 400 ~/.ssh/id_rsa
id_rsa
plik) nie ma komentarza, ale rzeczywiście komentarz w pliku klucza publicznego (id_rsa.pub
) został utracony.To rozwiązanie jest przeznaczone specjalnie dla użytkowników korzystających z systemu Windows do SSH na swoich zdalnych komputerach, w tym obrazów w chmurze na Amazon AWS i GCE.
(Zrzeczenie się)
Ostatnio użyłem tego rozwiązania do zdalnego logowania do nowych wdrożonych obrazów maszyn wirtualnych na GCE.
Narzędzia użyte:
Kroki do wykonania:
Opis (jak to zrobić):
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 klucza prywatnego:
Utwórz nowy plik „klucze autoryzowane” (w Notatniku):
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”.
Upewnij się, że w tym pliku jest tylko jeden wiersz tekstu.
Prześlij klucz na serwer Linux:
Prześlij plik autoryzowanych_kluczy do katalogu domowego na zdalnym komputerze.
Ustaw odpowiednie uprawnienia:
Utwórz
.ssh
katalog (jeśli nie istnieje)Skopiuj
authorized_keys
plik do katalogu .ssh (spowoduje to zastąpienie dowolnego istniejącegoauthorized_keys
pliku; zwróć uwagę na to).Jeśli plik istnieje, po prostu dodaj zawartość tego pliku do istniejącego pliku.
Uruchom polecenia, aby ustawić uprawnienia:
Teraz będziesz mógł ssh na zdalnym komputerze bez konieczności wprowadzania poświadczeń za każdym razem.
Dalsza lektura:
Generowanie i przesyłanie kluczy SSH w systemie Windows
Uwierzytelnianie bez hasła przy użyciu klucza OpenSSH, certyfikatów .pem i .pub
źródło