Jak skonfigurować klucz SSH w systemie Linux

Photo of author

By maciekx

SSH to niezwykle przydatna technologia, która pozwala na zabezpieczenie ruchu w sieci, a także na ochronę połączeń z witrynami internetowymi. Problem pojawia się jednak, gdy za każdym razem, gdy próbujesz zalogować się do zdalnego komputera, musisz wprowadzać swoje hasło, co może być dość uciążliwe. Jeśli jesteś programistą, który często łączy się z różnymi maszynami przez SSH, lub po prostu użytkownikiem, który ma dość ciągłego wpisywania hasła, rozwiązaniem może być logowanie przez SSH bez użycia hasła. Proces ten polega na wygenerowaniu klucza SSH na komputerze lokalnym i udostępnieniu go w celu uzyskania dostępu do zdalnego komputera. Dzięki temu każdy, kto posiada klucz, może się zalogować, nie znając hasła. Poniżej przedstawiamy, jak to zrobić.

Co to są klucze SSH?

Klucz SSH to unikalny plik identyfikacyjny, który jest wykorzystywany w kontekście Secure Shell. Głównym celem kluczy SSH jest zapewnienie unikalnej tożsamości użytkownika oraz oznaczenie go jako zaufanego podczas logowania. Klucze te stanowią więcej niż tylko pliki potwierdzające tożsamość – umożliwiają one logowanie się bez konieczności podawania hasła. Zamiast wpisywać hasło za każdym razem, gdy łączysz się przez SSH, korzystasz z klucza SSH.

Klucz SSH jest przechowywany w zabezpieczonym miejscu w systemie Linux, co pozwala na logowanie się do zdalnych komputerów wielokrotnie, bez potrzeby podawania hasła.

Generowanie kluczy SSH

Aby wygenerować klucz SSH, musisz mieć działające SSH. To nie znaczy, że musisz mieć serwer SSH, ale twoje narzędzia i technologie SSH muszą być aktywne na komputerze z systemem Linux. Nie wiesz, jak skonfigurować SSH? Możesz skorzystać z naszego przewodnika.

Klucze SSH powinny być zawsze generowane w systemie, który obsługuje serwer SSH. Nie próbuj generować ich na serwerze, który nie wspiera sesji SSH, a następnie kopiować ich na komputer hosta, ponieważ to nie zadziała.

Aby rozpocząć proces generacji klucza, otwórz terminal i wpisz:

ssh-keygen -t rsa

Uruchomienie komendy ssh-keygen spowoduje wyświetlenie komunikatu „Generowanie pary kluczy publicznych/prywatnych rsa”. Oznacza to, że system generuje zarówno klucz publiczny, jak i prywatny. Klucz publiczny może być udostępniany wszystkim, podczas gdy klucz prywatny powinien być zachowany w tajemnicy. Stąd jego nazwa „prywatny”.

Klucze zostaną zapisane w lokalizacji /home/username/.ssh/id_rsa.

Uwaga: NIE USUWAJ folderu ~ / .ssh, ponieważ zawiera on twoje klucze. Jakiekolwiek zmiany w tym folderze mogą uniemożliwić zdalne logowanie się do komputera, a SSH wyświetli ostrzeżenie i zablokuje dostęp.

Dodawanie kluczy SSH do zdalnego komputera

Gdy klucze SSH (publiczny i prywatny) są już wygenerowane, musisz je skopiować do zdalnego systemu, do którego chcesz się logować. Proces ten należy powtórzyć na wszystkich komputerach, z którymi zamierzasz się łączyć przez SSH. W przeciwnym razie osoby bez klucza będą musiały logować się przy użyciu metody hasła.

Aby dodać klucze do zdalnego systemu, wykonaj poniższe kroki, pamiętając, aby robić to z komputera hosta.

ssh username@remote-host-name mkdir -p .ssh

Wykonanie tej komendy utworzy ukryty folder ~ / .ssh w katalogu domowym zdalnego komputera (z używanym do logowania użytkownikiem). Ten folder jest kluczowy, ponieważ to tutaj skopiujemy nowo wygenerowane pliki kluczy SSH.

Aby skopiować pliki kluczy SSH, uruchom następujące polecenie z komputera hosta SSH do zdalnego komputera:

cat .ssh/id_rsa.pub | ssh username@remote-host-name 'cat >> .ssh/authorized_keys'

Kopiowanie zajmie chwilę, w zależności od prędkości sieci. Po zakończeniu zdalny komputer będzie miał dostęp do wygenerowanych kluczy i będzie mógł logować się do hosta SSH bez podawania hasła.

Tworzenie kopii zapasowych kluczy SSH

Klucze SSH są nieocenione i każdy z nich jest unikalny. Dlatego warto je regularnie kopiować. Problem polega jednak na tym, że jeśli zapiszesz je w niewłaściwym miejscu, mogą trafić w niepowołane ręce. Jak więc bezpiecznie wykonać kopię zapasową klucza SSH? Najlepszym rozwiązaniem jest szyfrowanie.

Najprostszym, najskuteczniejszym i najszybszym sposobem na szyfrowanie jest użycie GnuPG. To narzędzie jest zazwyczaj wbudowane w wiele systemów szyfrujących dostępnych w Linuksie i służy do szyfrowania plików. Aby zainstalować GnuPG, otwórz terminal i poszukaj „gpg” w menedżerze pakietów. Powinno być łatwo dostępne nawet w mniej popularnych dystrybucjach Linuksa.

Po uruchomieniu GPG rozpocznij proces szyfrowania, kompresując folder ~ / .ssh do archiwum tar. Dzięki temu nie będziesz musiał szyfrować każdego pliku osobno.

tar -czvf ssh-stuff.tar.gz /home/username/.ssh

Po kompresji przejdź do szyfrowania.

Uwaga: przed szyfrowaniem uruchom gpg w terminalu, aby wygenerować nową bazę kluczy.

gpg -c ssh-stuff.tar.gz

Po zakończeniu szyfrowania GnuPG stworzy plik z rozszerzeniem „ssh-stuff.tar.gz.gpg”. Możesz usunąć oryginalną wersję pliku. Aby odszyfrować archiwum kopii zapasowych, wykonaj następujące kroki:

gpg ssh-stuff.tar.gz.gpg


newsblog.pl