Jak wygenerować plik .pem openssl i gdzie musimy go umieścić

14

Chcę wygenerować .pemplik OpenSSL , aby umożliwić zdalne logowanie przez ssh przy użyciu .pempliku w miejscu hasła.

Jestem w stanie wygenerować klucz, jak .crti .pemplików przy użyciu następujących

sudo openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
openssl x509 -inform DER -outform PEM -in server.crt -out server.crt.pem

Problem polega jednak na tym, że muszę go umieścić po stronie serwera lub jakie zmiany muszę wprowadzić w /etc/ssh/sshd_configpliku, aby umożliwić zdalne logowanie przez ssh za pomocą .pempliku.

Chcę, aby klient podłączył moją maszynę w następujący sposób.

ssh -i server_crt.pem username@my_ip

Jakie dokładnie zmiany muszę wprowadzić w celu wdrożenia.

Dzięki

Farman Ali
źródło

Odpowiedzi:

18

Najpierw musisz przesłać klucz publiczny na serwer, z którym chcesz się połączyć, klucz publiczny znajduje się w pliku .pub:

Przykład:

# ssh-copy-id -i ~/my-certificate.pub [email protected]

Po tym powinno działać i powinieneś być w stanie zalogować się przy użyciu:

$ sudo ssh -i ~/my-certificate.pem [email protected]

Zmiany są wprowadzane w pliku ~ / .ssh / autoryzowane_klucze na serwerze, otwarte w edytorze tekstu, takim jak nano, zobaczysz wiersze zaczynające się od czegoś takiego jak: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAX ...

Osobiście generuję plik klucza za pomocą $ ssh-keygen -t rsa -b 2048 -v, który generuje plik .pem i pub. Kiedy zostaniesz zapytany:

Wprowadź plik, w którym chcesz zapisać klucz (/home/user/.ssh/id_rsa):

wprowadź nazwę pliku .pem, na przykład: mój-certyfikat.pem

Krok po kroku od wygenerowania klucza do logowania:

  1. Wygeneruj klucz za pomocą, $ ssh-keygen -t rsa -b 2048 -va gdy zostaniesz poproszony o podanie pliku, w którym chcesz zapisać klucz, wpisz, my-certificatea gdy zostaniesz poproszony o wprowadzenie hasła, naciśnij Enter (puste hasło) i potwierdź, naciskając Enter.
  2. Otrzymasz dwa pliki, jeden będzie moim-certyfikatem, a drugi moim-certyfikatem.pub, zmień nazwę mojego-certyfikatu na mój-certyfikat.pem, więc będziesz mieć dwa pliki, mój-certyfikat.pub i mój- certyfikat.pem
  3. Prześlij certyfikat publiczny na serwer: ssh-copy-id -i ~/my-certificate.pub username@ip
  4. Ustaw plik .pem na komputerze tylko do odczytu sudo chmod 400 my-certificate.pem
  5. Zaloguj się z $ sudo ssh -i /path/to/my-certificate.pem user@ip
Mikrofon
źródło
1
W końcu pojawia się błąd „Odmowa zezwolenia (publickey)” i nie mogę się połączyć
Farman Ali
Cześć, ze względów bezpieczeństwa plik .pem nie powinien być zapisywalny, użyj sudo chmod 400 my-certificate.pem na swoim komputerze i spróbuj ponownie.
Mike
Cześć, zmieniłem go na 400. Ale problem pozostał ten sam. Czy wyjaśnisz krok po kroku całą pracę, od wygenerowania klucza do połączenia z klientem.
Farman Ali,
Zmiana nazwy powinna nastąpić po ssh-copy-id, ponieważ szuka pliku mojego certyfikatu
coolscitist