Aurora Kursy

KursySSH od zera do bastionu

SSH od zera do bastionu

Klucze, tunele i konfiguracja, dzięki którym przestajesz wpisywać hasła i zaczynasz pracować jak inżynier.

od zera do bohatera 20 lekcji ok. 14 h 149 zł

Program

  1. SSH: zdalna powłoka bez tajemnic Czym jest SSH i co dzieje się między klientem a serwerem: szyfrowany kanał, uwierzytelnienie serwera (fingerprint) i uwierzytelnienie użytkownika. Pierwsze logowanie hasłem, prompt zdalnej maszyny, `exit`. Podgląd ćwiczenie
  2. known_hosts: dlaczego SSH pyta „are you sure?” Fingerprint serwera, plik `~/.ssh/known_hosts` i ostrzeżenie REMOTE HOST IDENTIFICATION HAS CHANGED. Kiedy to atak, a kiedy po prostu reinstalacja maszyny — i jak wtedy postąpić bez kasowania całego pliku. ćwiczenie 🔒
  3. Para kluczy: prywatny zostaje, publiczny jedzie `ssh-keygen -t ed25519`: co powstaje, czym różni się `id_ed25519` od `id_ed25519.pub` i dlaczego ed25519 wyparł RSA. Passphrase — kiedy ma sens, a kiedy przeszkadza. Fingerprint klucza. ćwiczenie 🔒
  4. authorized_keys: jak serwer Cię rozpoznaje `ssh-copy-id` i co dokładnie robi: dopisuje klucz publiczny do `~/.ssh/authorized_keys` na serwerze. Ręczna alternatywa, wiele kluczy w pliku, oddzielne klucze dla różnych maszyn. ćwiczenie 🔒
  5. Uprawnienia: 600, 700 i „UNPROTECTED PRIVATE KEY FILE” Dlaczego OpenSSH odmawia użycia klucza z prawami 644 i czemu serwer po cichu ignoruje `authorized_keys` w katalogu zapisywalnym dla grupy. Właściwe tryby: 700 dla `~/.ssh`, 600 dla klucza prywatnego. ćwiczenie 🔒
  6. ssh-agent: hasło do klucza raz na sesję Po co agent, gdy klucz ma passphrase: `ssh-agent`, `ssh-add`, `ssh-add -l`. Czas życia kluczy (`-t`), agent w systemd/keychain i dlaczego `ssh-add` bez agenta nic nie robi. ćwiczenie 🔒
  7. ~/.ssh/config: koniec z długimi komendami Aliasy hostów: `Host`, `HostName`, `User`, `Port`, `IdentityFile`. Wildcardy i `Host *`, kolejność dopasowań, `ServerAliveInterval`. Jedno `ssh prod` zamiast komendy na pół ekranu. ćwiczenie 🔒
  8. ProxyJump: przez bastion do maszyn bez publicznego IP Serwery w sieci prywatnej dostępne tylko przez bastion: `ssh -J`, dyrektywa `ProxyJump` w configu i czym różni się od starego `ProxyCommand`. Dlaczego to bezpieczniejsze niż trzymanie klucza na bastionie. ćwiczenie 🔒
  9. scp: kopiowanie w obie strony Składnia `scp źródło cel` z adresem zdalnym, kopiowanie katalogów (`-r`), port (`-P` — wielką literą!) i najczęstszy błąd: pomylona kolejność argumentów. Kiedy scp wystarcza, a kiedy jest złym narzędziem. ćwiczenie 🔒
  10. rsync przez SSH: kopiuje tylko to, co się zmieniło `rsync -avz` po kanale SSH, znaczenie ukośnika na końcu ścieżki, `--delete`, `--dry-run` przed każdą groźną synchronizacją. Dlaczego rsync bije scp przy dużych katalogach i wznawianiu transferu. ćwiczenie 🔒
  11. Tunel lokalny -L: baza słuchająca na localhost serwera `ssh -L 5432:localhost:5432 user@host` — co oznacza każdy człon i skąd patrzy „localhost". Dostęp do usług zamkniętych na interfejsie pętli zwrotnej bez otwierania ich na świat. ćwiczenie 🔒
  12. Tunel zdalny -R: wpuść świat do siebie (ostrożnie) `ssh -R` odwraca kierunek: port na serwerze prowadzi do usługi u Ciebie. Zastosowania (pokaz aplikacji z laptopa, webhook w developmencie) i `GatewayPorts` — dlaczego domyślnie tunel widać tylko z samego serwera. ćwiczenie 🔒
  13. SOCKS (-D) i multiplexing: proxy oraz szybsze łączenie `ssh -D 1080` jako proxy SOCKS5 dla przeglądarki. Do tego `ControlMaster`/`ControlPersist`: jedno połączenie współdzielone przez wiele sesji — zauważalne przyspieszenie przy Ansible i skryptach. ćwiczenie 🔒
  14. PuTTY i PuTTYgen: klucze w świecie Windows Generowanie klucza w PuTTYgen, format `.ppk` kontra OpenSSH, wklejanie klucza publicznego do `authorized_keys`, zapisywanie sesji i Pageant jako odpowiednik ssh-agenta. Ze zrzutami ekranu krok po kroku. 🔒
  15. MobaXterm i OpenSSH w Windows: wybierz jedno i rób to dobrze MobaXterm: sesje, wbudowany SFTP, przechowywanie kluczy. OpenSSH wbudowany w Windows (`ssh` w PowerShellu, `%USERPROFILE%\.ssh`) i konwersja kluczy `.ppk` ↔ OpenSSH przez PuTTYgen oraz `ssh-keygen`. 🔒
  16. sshd_config: co serwer w ogóle akceptuje Najważniejsze dyrektywy: `PermitRootLogin`, `PasswordAuthentication`, `PubkeyAuthentication`, `AllowUsers`, `Port`. Przeładowanie usługi i żelazna zasada: nie zamykaj sobie drzwi, dopóki druga sesja nie potwierdzi, że działa. ćwiczenie 🔒
  17. Hardening: klucze zamiast haseł, fail2ban, zmiana portu Co realnie podnosi bezpieczeństwo (klucze, brak roota, ograniczenie użytkowników, fail2ban), a co jest tylko teatrem (sama zmiana portu). Logi prób logowania i czytanie ich ze zrozumieniem. ćwiczenie 🔒
  18. Gdy nie działa: -v, -vvv i czytanie komunikatów `ssh -vvv` linia po linii: który klucz został zaproponowany, czy serwer go odrzucił, gdzie kończy się negocjacja. Rozróżnianie `Connection refused`, `Connection timed out`, `Permission denied (publickey)` i `Host key verification failed`. ćwiczenie 🔒
  19. Klucze w automatyzacji: CI, deploy keys i agent forwarding Klucz bez passphrase w CI/CD — kiedy to konieczne i jak ograniczyć szkody (`command=` i `from=` w authorized_keys, deploy keys tylko do odczytu). Agent forwarding (`-A`) i dlaczego nie wolno go włączać na cudzym serwerze. ćwiczenie 🔒
  20. Projekt: bastion, klucze i tunel do bazy Powtórka całości w jednym zadaniu: konfiguracja klienta z aliasami i przeskokiem przez bastion, uwierzytelnianie kluczem z agenta, tunel do bazy w sieci prywatnej i utwardzony serwer. Przygotowanie do egzaminu próbnego. ćwiczenie 🔒

SSH to pierwsza rzecz, której używasz każdego dnia w DevOps, i ostatnia, którą ktokolwiek tłumaczy porządnie. Większość ludzi zna trzy komendy: ssh user@host, wpisz hasło, exit — a potem przez lata omija problemy zamiast je rozumieć. Dlaczego klucz „nie działa"? Czemu Permission denied (publickey) pojawia się mimo poprawnego hasła? Jak dostać się do bazy, która słucha wyłącznie na localhost serwera po drugiej stronie kraju?

Ten kurs odpowiada na te pytania praktyką. Zaczynasz od pierwszego logowania hasłem, a kończysz z konfiguracją, w której jedno ssh prod przechodzi przez bastion, uwierzytelnia kluczem z agenta i zestawia tunel do bazy. Po drodze rozbrajamy pułapki, które kosztowały ludzi godziny: klucz prywatny z uprawnieniami 644, katalog ~/.ssh z prawem zapisu dla grupy, agent forwarding włączony na cudzym serwerze, known_hosts krzyczący o zmianie klucza po reinstalacji maszyny.

Każda lekcja ma ćwiczenie w emulatorze, który ma dwie maszyny — Twój laptop i serwer. Naprawdę generujesz klucz, naprawdę wgrywasz go przez ssh-copy-id, naprawdę wchodzisz na drugą maszynę (hostname pokazuje inną nazwę), kopiujesz pliki i zestawiasz tunele. Zadanie zalicza się przez stan systemu, nie przez wpisanie właściwej komendy — jak na produkcji, gdzie liczy się to, czy wdrożenie doszło.

Osobny moduł poświęcamy Windowsowi: PuTTY, PuTTYgen, MobaXterm i wbudowany OpenSSH w PowerShellu, razem z konwersją kluczy .ppk ↔ OpenSSH, na której wykłada się każdy, kto przesiada się między systemami.

Po kursie logujesz się bez hasła, rozumiesz komunikaty błędów zamiast je googlować, tunelujesz ruch świadomie i wiesz, czym różni się klucz w agencie od klucza na dysku serwera.

Dostęp do kursu

149 zł

Pełny dostęp do wszystkich 20 lekcji, ćwiczeń i sprawdzianów, bezterminowo. Płatność BLIK-iem, przelewem albo kartą — dostęp aktywuje się od razu po zaksięgowaniu.

Kup dostęp — 149 zł Mam kod — załóż konto

Dla zespołu: jeden kod na dowolną liczbę miejsc — rozdajesz go ludziom, zamiast zakładać konta za nich. Napisz na kursy@aurora-tech.pl, ilu osób dotyczy.