CodeGym /Kursy /Docker SELF /Wprowadzenie do SSH: konfiguracja zdalnego dostępu, używa...

Wprowadzenie do SSH: konfiguracja zdalnego dostępu, używanie kluczy

Docker SELF
Poziom 4 , Lekcja 3
Dostępny

Wprowadzenie do SSH: konfiguracja zdalnego dostępu, używanie kluczy

1. Co to jest SSH?

Wyobraź sobie, że jesteś na jednym końcu świata, a serwer, który trzeba skonfigurować, znajduje się na drugim. Praca szkolnego specjalisty IT biegającego między gabinetami – to nie jest to, czego chcemy. Na szczęście istnieje SSH (Secure SHell) – narzędzie do zdalnego zarządzania serwerami.

SSH to protokół sieciowy, który pozwala na bezpieczne połączenie zdalne z komputerami. Połączenie odbywa się przy użyciu szyfrowania, co oznacza, że przesyłane dane są chronione przed wścibskimi oczami. SSH zastępuje przestarzałe metody, takie jak Telnet, które przesyłały dane w formie otwartej (jak pocztówka z tradycyjnej poczty).

Zalety SSH

  1. Bezpieczeństwo. SSH wykorzystuje szyfrowanie, chroniąc dane przed przechwyceniem.
  2. Elastyczność. Zdalne zarządzanie serwerem, przesyłanie plików, tworzenie tuneli – wszystko to możliwe dzięki SSH.
  3. Wieloplatformowość. Działa zarówno na Linux, Windows (w tym w WSL), jak i MacOS.

Teraz, gdy już rozumiesz, po co jest SSH, przejdźmy do praktyki.


2. Instalacja klienta SSH

Zaczniemy od klienta, który umożliwi połączenie z serwerem. Jeśli używasz nowoczesnej dystrybucji Linuxa, klient SSH prawdopodobnie jest już zainstalowany. Sprawdźmy to:

ssh -V

Powinieneś zobaczyć informację o wersji klienta SSH. Jeśli komenda nie zostanie znaleziona, zainstaluj go (na Ubuntu i innych dystrybucjach opartych na Debianie):

sudo apt update
sudo apt install openssh-client

Na MacOS klient SSH jest preinstalowany, a jeśli pracujesz w WSL, instalacja jest analogiczna do Linuxa.


3. Połączenie ze zdalnym serwerem przez SSH

Połączenie z serwerem wykonuje się poleceniem:

ssh username@hostname
  • username — to nazwa użytkownika na zdalnym serwerze.
  • hostname — to adres IP lub nazwa domenowa serwera.

Przykład połączenia:

ssh student@192.168.1.10

Jeśli wszystko jest poprawnie skonfigurowane, system poprosi o hasło. Po jego wpisaniu znajdziesz się w zdalnej konsoli serwera. Gratulacje, jesteś w połowie drogi do zawodu "operatora superzłoczyńcy w filmie o hakerach".


4. Instalacja i konfiguracja serwera SSH

Instalacja serwera SSH

Jeśli pracujesz na serwerze lub lokalnej maszynie, do której chcesz się połączyć, musisz zainstalować serwer SSH. Na Ubuntu zrób to tak:

sudo apt update
sudo apt install openssh-server

Sprawdźmy status usługi SSH:

sudo systemctl status ssh

Powinieneś zobaczyć komunikat w rodzaju active (running). Jeśli serwer nie jest uruchomiony, użyj:

sudo systemctl start ssh
sudo systemctl enable ssh

Teraz serwer SSH jest gotowy do przyjmowania połączeń.


Konfiguracja serwera SSH

Główny plik konfiguracyjny serwera SSH to /etc/ssh/sshd_config. Aby go edytować, użyj dowolnego edytora tekstu, na przykład nano:

sudo nano /etc/ssh/sshd_config

Zwróć uwagę na następujące parametry:

  • Port 22 — port, na którym działa SSH.
  • PermitRootLogin no — zakaz logowania się jako root (zaleca się pozostawienie no ze względów bezpieczeństwa).
  • PasswordAuthentication yes — zezwolenie na logowanie przy użyciu hasła.

Po zmianie parametrów zrestartuj serwer SSH:

sudo systemctl restart ssh

5. Używanie uwierzytelniania kluczem

Łączenie się za pomocą hasła jest wygodne, ale niezbyt bezpieczne. Najlepszą opcją jest używanie kluczy SSH.

Generowanie kluczy SSH

Na komputerze-kliencie wykonaj polecenie:

ssh-keygen

Skrypt zapyta o ścieżkę do zapisania klucza (domyślnie ~/.ssh/id_rsa). Możesz nacisnąć Enter, aby to zaakceptować. Następnie zapyta o hasło. Lepiej zostawić puste dla prostoty (chociaż to nie jest zbyt bezpieczne).

Po wykonaniu polecenia pliki kluczy zostaną utworzone:

  • id_rsa — klucz prywatny (nie udostępniaj go publicznie, jak kod źródłowy twojego projektu przed wydaniem, szczególnie jeśli już jest pełen „długów technicznych”).
  • id_rsa.pub — klucz publiczny (jego można używać do połączeń).

Przesyłanie klucza na serwer

Użyj polecenia ssh-copy-id, aby przesłać klucz publiczny na serwer:

ssh-copy-id username@hostname

To doda twój klucz publiczny do pliku ~/.ssh/authorized_keys na serwerze. Teraz możesz się połączyć bez wprowadzania hasła.

Spróbuj:

ssh username@hostname

Jeśli wszystko przebiegło pomyślnie, nie zostaniesz poproszony o hasło. Twoje życie oficjalnie stało się trochę prostsze.

SSH i WSL

Jeśli pracujesz na Windowsie przez WSL, tam również możesz używać SSH. Otwórz terminal WSL i zainstaluj klienta SSH:

sudo apt update
sudo apt install openssh-client

Dalsze kroki są takie same jak dla Linuxa.


6. Część praktyczna: konfiguracja SSH na localhost

Dla ćwiczeń możesz skonfigurować połączenie SSH między dwoma komputerami w jednej sieci lub nawet na swoim własnym komputerze (używając localhost jako adres).

  1. Zainstaluj serwer i klienta SSH na jednym komputerze.
  2. Połącz się za pomocą adresu lokalnego:
ssh your_user@localhost
  1. Skonfiguruj połączenie za pomocą klucza, jak pokazano wyżej.

W rezultacie powinieneś uzyskać połączenie bez potrzeby podawania hasła.


7. Praca z konfiguracjami i aliasami SSH

Jeśli często łączysz się z różnymi serwerami, możesz ułatwić sobie życie, dodając konfigurację SSH do pliku ~/.ssh/config:

Host myserver
    HostName 192.168.1.10
    User student
    IdentityFile ~/.ssh/id_rsa

Teraz możesz połączyć się prostą komendą:

ssh myserver

Najczęstsze błędy i ich naprawa

  1. Błąd "Connection refused". To oznacza, że serwer SSH nie działa na zdalnej maszynie. Upewnij się, że jest zainstalowany i uruchomiony.

  2. Błąd "Permission denied". Albo wpisałeś błędne hasło, albo klucze są źle skonfigurowane. Sprawdź zawartość pliku ~/.ssh/authorized_keys na serwerze.

  3. Błąd "No route to host". Sprawdź, czy serwer jest dostępny w sieci (użyj ping).


Teraz masz wiedzę, jak konfigurować SSH, korzystać z kluczy i unikać typowych problemów. To potężne narzędzie używane wszędzie, czy to przy konfiguracji serwerów w pracy, czy zarządzaniu domowym Raspberry Pi.

Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION