Jak wygenerować klucz prywatny-publiczny za pomocą ssh-keygen i zezwolić na jego autoryzację?

19

Chcę wygenerować klucz publiczno-prywatny na serwerze Sever 1 i przechowywać go w lokalizacji, która nie jest domyślną lokalizacją.

Następnie zapisz klucz publiczny na serwerze 2; jeszcze raz NIE w domyślnej lokalizacji.

Następnie ustaw ten klucz jako klucz autoryzowany.

Nie mogę jednak znaleźć authorized_keyspliku w ~/.sshfolderze. Jak mogę to autoryzować?

Aditya
źródło
1
ssh-keygen to polecenie do generowania kluczy. Pyta o lokalizację pliku klucza podczas tworzenia. Myślę, że musisz utworzyć klucz autoryzowanego pliku, jeśli go nie masz
sagarchalizuj

Odpowiedzi:

22
  1. Uruchom ssh-keygen -f filename.
  2. Biegać scp filename username@server:filename-on-server
  3. Zaloguj się do serwera i uruchom cat filename-on-server >> ~/.ssh/authorized_keys

Możesz również zamienić kroki 2 i 3 na ssh-copy-id -i filename username@server.

Mikel
źródło
Pojawia
@Igor na jakim etapie?
Mikel
1
Czy nie należy dołączać pliku.pub zamiast pliku (który będzie Twoim kluczem prywatnym?)
Samuel
1

Użyj ssh-keygenpolecenia. Na serwerze (gdzie chcesz ssh) przechowywać klucz publiczny w pliku ~/.ssh/authorized_keys. Jeśli nie masz jeszcze katalogu .ssh w swoim domu (~), utwórz go (uważaj też: wydaje się, że sshd jest wybredny - ze względów bezpieczeństwa - że żaden inny użytkownik nie może odczytać tego pliku / katalogu, lepiej wydać chmod 700 w katalogu .ssh i chmod 600 w pliku w nim zawartym).

Na komputerze, z którego chcesz ssh („klient”), możesz użyć klucza prywatnego, aby ssh na swoim serwerze. Możesz go przechowywać w dowolnym miejscu, a następnie możesz użyć -iprzełącznika ssh, aby podać klucz publiczny, który będzie używany. Piszę to, ponieważ powiedziałeś, że „nie przechowuję w domyślnej lokalizacji”. Domyślna lokalizacja to file id_dsa(dla klucza DSA) w katalogu .ssh. Wtedy nie potrzebujesz -iprzełącznika, aby określić swój klucz, ponieważ zostanie on automatycznie wybrany z tego miejsca.

LGB
źródło
1

Wygląda na to, że już wykonałeś klucze. Jeśli nie, po prostu uruchom ssh-keygen i zaakceptuj wartości domyślne. Zrób sam plik autoryzowanych_kluczy:touch authorized_keys

Gdy przechowujesz klucze prywatne w niestandardowej lokalizacji, upewnij się, że używasz -i: ssh -i /path/to/privatekey user@host

Oto dobry artykuł na temat ssh-keygen i korzystania z kluczy autoryzowanych w celu uproszczenia logowania ssh:

http://www.debuntu.org/secure-your-ssh-server-with-publicprivate-key-authentification/

djeikyb
źródło