Logowanie SSH – gdzie znaleźć klucze RSA do połączenia?

Połączenie za pomocą kluczy SSH wymaga wygenerowania pary kluczy (publicznego i prywatnego), na podstawie których nastąpi autoryzacja do serwera. Klucz publiczny umieszcza się na serwerze, do którego ma nastąpić połączenie, a klucz prywatny na komputerze, z którego łączy się użytkownik.

Sugerujemy, aby klucze SSH generować dla każdego serwera i dla każdego komputera osobno. Klucze należy generować bezpośrednio z poziomu komputera, a nie serwera Unix.
Pamiętaj, aby nie udostępniać klucza prywatnego podmiotom i osobom trzecim.

Generowanie kluczy SSH w systemie Windows możliwe jest m.in. za pomocą:

Generowanie kluczy w konsoli na przykładzie Cmder’a

Cmder to środowisko konsolowe imitujące konsolę Linuxową. Można je rozszerzyć o dodatkowe elementy, aby jego działanie było zbliżone do działania, np. konsoli Linuxa lub konsoli działającej pod serwerem Unix.

  1. Z poziomu katalogu C:\Users\nazwa_uzytkownika wywołaj polecenie:
     ssh-keygen -t rsa -b 4096 -f .ssh/s_home -C "serwer123456"
    • ssh-keygen – to nasz generator kluczy,
    • -t rsa  – wybór szyfrowania (zalecane RSA),
    • -b 4096 – moc szyfrowania (może być 2048, ale zalecane 4096),
    • -f .ssh/s_home – nazwa, pod którą maja być pliki (jeśli korzystasz z kluczy SSH do wielu serwerów, warto używać tego przełącznika, aby uniknąć nadpisania kluczy z domyślną nazwą,
    • -C “serwer123456” – dowolny komentarz, który będzie widoczny w kluczach na serwerze (wpisanie w tym miejscu nazwy Twojego serwera może pomóc później przy identyfikacji/szukaniu kluczy).
  2. Na ekranie wyświetlone zostaną kolejno następujące komunikaty, klikaj przycisk Enter, aby przejść dalej.
    • Generating public/private rsa key pair – wciśnij Enter.
    • Enter passphrase (empty for no passphrase) – wciśnij Enter.
    • Enter same passphrase again – kliknij Enter
  3. Po wyświetleniu kolejnych komunikatów, wyświetlone zostanie podsumowanie informujące o wygenerowaniu kluczy.
    Your identification has been saved in .ssh/s_home. Your public key has been saved in .ssh/s_home.pub. The key fingerprint is:
    SHA256:N3Le5LR5R1WRrMdgkrPWJ8gE+b7jn2nyY3vYof4Frwk serwer123456
    The key's randomart image is:
    +---[RSA 4096]----+
    |         .o . ..+|
    |         . = o o.|
    |          + B + .|
    |           * + +.|
    |        S * o = .|
    |         = B o = |
    |          . E = =|
    |           + Oo*.|
    |          ..OBB. |
    +----[SHA256]-----+
    Jako alternatywne rozwiązanie do wygenerowania kluczy, możesz skorzystać z programu puttygen. Następnie po wygenerowaniu kluczy w puttygen, będziesz mógł skonfigurować aplikację putty w taki sposób, aby stosowała ona wskazany klucz podczas połączenia. Podczas generowania kluczy w puttygen należy zaznaczyć RSA, wpisać 4096, wygenerować i zapisać klucze. Potem w konfiguracji aplikacji putty wystarczy wskazać klucz prywatny, a klucz publiczny trzeba wgrać na serwer zgodnie z dalszymi punktami poniższej instrukcji.

    Więcej informacji w języku angielskim nt. generowania kluczy znajdziesz: tutaj lub tutaj.

  4. W katalogu .ssh (w systemie Windows: C\Users\nazwa_uzytkownika\.ssh) zostaną zapisane dwa pliki:
    • s_home
    • s_home.pub
    Klucz publiczny umieszcza się na serwerze, do którego ma nastąpić połączenie, a klucz prywatny na komputerze, z którego łączy się użytkownik.
  5. Plik z końcówką .pub należy przesłać na serwer, drugi plik jest kluczem prywatnym i nie należy go udostępniać nigdzie indziej. Klucz prywatny ma pozostać na komputerze lokalnym, z którego będziesz inicjować połączenie z serwerem. Poniżej znajdziesz przykład zawartości dla pliku klucza publicznego:
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDfND/F0NWBSJf21/8H9qYjifWOqdIuK+CjUyuMAFFyPLePpuKELUH9NGnPk45moNnvnq/MvuHp/6S97wmNIhtdo0m5CHSNuhkRe31Y8k6qmVz65BPfCMA9wJZtef0UPJxurJm9cGEFVpzyOyc39NCO0JNnx8Uk727CqL+8tYN4e74hmib/4Aq+G8R52AiEOjKlkVqx0hddkGsFryIWEIWgzZWSbKez3zbGnH7i29R5Minzink963ndFr5cQ0sQQSp2hDhaBkIO9Xn9EiAlZr7P+HyTXUDgXG6a0SmbRptNPlQMI9QNn3wLn4418N/t6uwkLul+Fjf5GOWs8FLre5Hb7DPK4DxXWMiIMuzYc0A13D1ia9bWTu1Uh7JaqGDIAc27Pt+wNQhAAEAdbc2ZKnYCvowfL1xdFCK81a72YOUp6W6Ydmt1uAA9kAp9llD7c4SCumYs9kkeC3lnou+ALkaB1zSGjR+XBo8PzLOzg6gOJTZUpcp703fmvg+nLem9R1ga9gzEZt+ajtua0+ZTOg70SVKs0i7Lz6ApzjFNi/9wnDpB4VaDPGtTm3yjHddN4PhIZak5VfwMKWzXpEw4IunRfqCy7ObHL/qkTtHwlVUZ9MzDtUOkACbV94jEmeFImUgwfTpN3J4yu9O3ESq+bgN5Ym4E1R0NWN2uP5dNR+6HQw== serwer123456
    
  6. Wgraj klucz publiczny na serwer. Możesz to wykonać poniższym poleceniem lub za pomocą tradycyjnego połączenia SSH/FTP. Jeśli poniższe polecenie nie zadziała (np. w Cmder), to przejdź do punktu 7, gdzie opisujemy wgrywanie klucza publicznego przez SSH/FTP.
    ssh-copy-id -i .ssh/s_home serwer123456@serwer123456.home.pl
    • -i .ssh/s_home – w tym miejscu wskazujesz klucz do wgrania na serwer
    • serwer123456@serwer123456.home.pl – w tym miejscu wskazujesz serwer (w formacie: nazwa_użytkownika@adres_serwera), na który ma zostać wgrany klucz
  7. Aby wysłać klucz publiczny na serwer, możesz też skorzystać z tradycyjnego połączenia SSH/FTP, gdzie po połączeniu z serwerem należy utworzyć na serwerze katalog .ssh (w tej samej lokalizacji co katalog systemowy /backup), a następnie należy utworzyć plik do przechowywania kluczy o nazwie: authorized_keys. Utworzenie katalogu i pliku możesz wykonać za pomocą poniższych dwóch poleceń:
    Polecenie 1 – powoduje utworzenie katalogu .ssh w obecnej lokalizacji:
    mkdir .ssh

    Polecenie 2 – tworzy plik o nazwie authorized_keys, który będzie znajdować się w katalogu .ssh:

    touch .ssh/authorized_keys
  8. Następnie za pomocą dowolnego edytora (np. VIM na serwerze lub Notepad++ na komputerze lokalnym) wklej (przenieś) klucz publiczny z pliku s_home.pub do utworzonego na serwerze pliku o nazwie: authorized_keys. Gdy to zrobisz, możesz zakończyć połączenie SSH z serwerem.
  9. Następnie w katalogu .ssh na komputerze, w którym znajdują się klucze, należy utworzyć plik config i w nim zapisać konfigurację połączenia wg. poniższego schematu (zamiast “serwer123456” wpisz identyfikator swojego serwera):
    Host home serwer123456.home.pl
      HostName serwer123456.home.pl
      IdentityFile ./.ssh/s_home
      User serwer123456
    
    • w pierwszej linii fraza “home” może być zamieniona na inną dowolną frazę. Może Ci się ona przydać do połączenia z serwerem za pomocą tej prostej nazwy.
    • Host home serwer123456.home.pl – twoja prosta nazwa i adres serwera
    • HostName serwer123456.home.pl – adres serwera
    • IdentityFile ./.ssh/s_home – lokalizacja klucza prywatnego
    • User serwer123456 – użytkownik ssh
  10. Po utworzeniu pliku config, z poziomu katalogu C:\Users\nazwa_użytkownika możesz wywołać poniższe polecenie, aby połączyć się z serwerem.
    ssh home
    • w pliku config możesz ustalić inną prostą nazwę niż “home”, którą możesz używać do inicjowania połączenia ze swoim serwerem.
Dodatkowe informacje w języku angielskim dot. generowania kluczy SSH znajdziesz też pod adresem: https://www.ssh.com/ssh/keygen/
  • Czy artykuł był pomocny?
  • TAK   Nie
Tematy powiązane
Więcej informacji na forum dyskusyjnym:   Kliknij tutaj, aby przejść na forum.home.pl