Podstawy

🟣 ROZSZERZENIE2 min czytaniaPostęp: 130/233

Bezpieczny dostęp do serwera (SSH keys)

Nieukończona

Postępy nie są zapisywane. Zarejestruj się lub zaloguj, aby śledzić postępy w kursach.

Bezpieczny dostęp do serwera (SSH keys)

Scenariusz z życia

Logowanie hasłem do SSH jest wygodne, ale podatne na brute-force i przechwycenie. Standard w produkcji: uwierzytelnianie kluczem (para klucz prywatny + publiczny). Klucz prywatny zostaje na Twoim komputerze, publiczny na serwerze w ~/.ssh/authorized_keys. Po wyłączeniu logowania hasłem serwer jest odporny na ataki na hasło.

Co się dzieje w systemie

ssh-keygen generuje parę kluczy (np. ed25519 lub RSA). Klucz publiczny (.pub) trafia do ~/.ssh/authorized_keys na koncie użytkownika na serwerze. Przy połączeniu klient dowodzi, że ma klucz prywatny (bez przesyłania go); serwer weryfikuje podpis. W sshd_config: PasswordAuthentication no (po wgraniu kluczy), PubkeyAuthentication yes. Agent ssh (ssh-agent) trzyma odblokowane klucze w sesji, żeby nie wpisywać passphrase za każdym razem.

Co administrator zyskuje

Brak ataków brute-force na hasło; nawet przy wycieku hasła bez klucza prywatnego nikt się nie zaloguje. Można wymagać passphrase na kluczu — drugi faktor. Automatyzacja (skrypty, backup) — skrypt używa klucza bez podawania hasła.

Typowy błąd

Wyłączyć PasswordAuthentication zanim klucz nie działa — możesz się zablokować. Albo: źle ustawione uprawnienia na ~/.ssh (700) lub authorized_keys (600) — SSH odrzuci klucz ze względów bezpieczeństwa. Albo: trzymać klucz prywatny na współdzielonym dysku bez hasła — kto ma dostęp do pliku, ma dostęp do serwera.

Myślenie administratora

Najpierw dodaj klucz i sprawdź logowanie; dopiero potem wyłącz hasła. Uprawnienia: .ssh 700, authorized_keys 600. Klucz prywatny tylko na zaufanym komputerze, z passphrase jeśli możliwe. Rotacja kluczy przy zmianie osoby lub komputera.

Zapamiętaj – 4 fakty praktyczne

  • SSH keys: ssh-keygen, klucz publiczny w ~/.ssh/authorized_keys na serwerze; logowanie bez hasła.
  • Po wgraniu klucza: przetestuj, potem w sshd_config ustaw PasswordAuthentication no.
  • Uprawnienia: ~/.ssh = 700, authorized_keys = 600 — inaczej SSH może nie zaakceptować klucza.
  • Klucz prywatny = jak hasło — tylko na zaufanym hoście, z passphrase dla dodatkowego zabezpieczenia.
Notatki (opcjonalnie)