Jak dodać plik PEM jako klucz prywatny SSH do „znanych hostów”

8

Mam komputer Ubuntu i otrzymałem plik PEM ( mykey.pem), który jest prywatnym kluczem SSH dla serwera Linux. Próbuję dowiedzieć się, gdzie ten plik PEM powinien być umieszczony lokalnie na moim komputerze i jak można go skonfigurować / dodać do moich „znanych hostów SSH”.

Googlowanie tego tematu pokazuje wiele odpowiedzi / artykułów dotyczących tworzenia kluczy SSH, ale nie dodawania istniejącego klucza do znanych hostów. Pomysły?

smeeb
źródło
// , Dobre pytanie! Powinno to działać: $ ssh-keygen -y -f mykey.pem >> ~ / .ssh / author_keys Zbyt wiele działów IT po prostu wysyła plik PEM bez żadnych instrukcji, jak go używać lokalnie. Jeśli ktoś potrzebuje więcej na ten temat, mogę dodać odpowiedź.
Nathan Basanese

Odpowiedzi:

5

Nie wiem o różnych typach kluczy SSH. Ale umieściłbyś klucz publiczny na komputerze docelowym, a nie klucz prywatny. Twój klucz prywatny pozostaje prywatny.

I klucz publiczny komputera źródłowego powinien zostać umieszczony na komputerze docelowym. ~/.ssh/authorized_keys Można to zrobić ręcznie lub za pomocą ssh-keygenpolecenia.

Sugeruję, aby zrobić kota na kluczu publicznym na komputerze źródłowym i kota na uprawnionych kluczach na komputerze docelowym i upewnić się, że jeden ze źródeł wygląda tak, jakby był w tym samym formacie co klucze autoryzowane

Plik known_hosts to coś, do którego automatycznie dołącza się plik. Nie musisz go edytować ręcznie. Możesz połączyć się nawet po usunięciu pliku znanego_hosta.

EDYTOWAĆ-

Aby uwzględnić niektóre komentarze w odpowiedzi. Klucz publiczny pochodzi od klucza prywatnego. Zwykle klucz prywatny pozostaje prywatny, ale OP otrzymał klucz prywatny, jest to niezwykłe, ale jest to interesujący sposób, ponieważ oznacza to, że komputer docelowy może już mieć swój klucz publiczny. Aby mógł się zalogować bez konieczności dodawania czegokolwiek do kluczy autoryzowanych komputera docelowego. ssh -i zawsze bierze klucz prywatny. Musi tylko zrobić ssh -i path/to/privatekeyfile user@dest . OP używa „openstack”, jakiejś usługi w chmurze, a jak mówi strona openstack docs.openstack.org/user-guide/content/ssh-into-instance.html $ ssh -i MyKey.pem [email protected]Tak więc bez względu na nazwę pliku klucza prywatnego i gdziekolwiek jest przechowywany, określasz to, robiąc tossh -i

barlop
źródło
Dzięki @barlop (+1) - jeśli przeczytasz pierwsze zdanie mojego pytania, zobaczysz, że stwierdzam, że plik PEM jest kluczem prywatnym SSH i że próbuję go poprawnie zainstalować na moim komputerze. Nie martwię się o stronę serwera, o którą już zadbano. Więc moje pytanie brzmi: jak zainstalować klucz prywatny na moim komputerze Ubuntu? To był klucz, którego nie wygenerowałem ssh-keygen; zostało mi dane przez zaufane źródło.
smeeb
1
@smeeb dlaczego ktoś daje ci swój klucz prywatny? ich klucz prywatny ma być dla nich prywatny.
barlop
Jeszcze raz dziękuję @barlop (+1) - Ale to nie jest ktoś, to OpenStack , generujący chmurę IaaS. To potężny projekt typu open source, za którym stoją miliony roboczogodzin i wsparcie korporacyjne. Widok 30 000 stóp tutaj: aby utworzyć nową „instancję aplikacji” w OpenStack Horizon, musisz najpierw utworzyć parę kluczy SSH. OpenStack automatycznie instaluje klucz publiczny na nowej instancji. Należy pobrać klucz prywatny (plik PEM) i zainstalować go lokalnie, aby można było SSH w instancji, jeśli chcesz.
smeeb
@smeeb Nie wiem zbyt wiele o openstack, ale możesz to zrobić np. ssh -i ~/.ssh/id_rsa [email protected] lub jak mówi witryna openstack docs.openstack.org/user-guide/content/ssh-into-instance.html $ ssh -i MyKey.pem [email protected] Tak więc bez względu na nazwę klucza prywatnego plik jest i gdziekolwiek jest przechowywany, określasz, że robiąc tossh -i
barlop
1
Ponadto, ponieważ klucz publiczny pochodzi od klucza prywatnego, może to oznaczać, że to polecenie to zrobi, ponieważ powinien już mieć klucz publiczny, jeśli daje ci klucz prywatny. Nie będziesz więc musiał dodawać klucza publicznego do uprawnionych kluczy na swoim komputerze, ponieważ już tam był.
barlop