Menu
Szybki wybór
Hosting Domeny VPS SSL Kalkulator Porównania FAQ
Aktywne kody
Wszystkie kody rabatowe

SSH klucze — konfiguracja i bezpieczeństwo na VPS

Klucze SSH to standard bezpiecznego dostępu do serwerów. Konfiguracja parą kluczy i wyłączenie logowania hasłem to pierwsze co powinieneś zrobić po uruchomieniu nowego VPS — eliminuje setki prób bruteforce dziennie.

Opublikowano: 8 kwietnia 2026

Generowanie pary kluczy SSH

Zalecany algorytm to Ed25519 — krótszy klucz, szybszy i tak samo bezpieczny jak RSA 4096:

# Ed25519 (zalecany)
ssh-keygen -t ed25519 -C "[email protected]"

# RSA 4096 (kompatybilność ze starszymi systemami)
ssh-keygen -t rsa -b 4096 -C "[email protected]"

# Wygeneruje:
# ~/.ssh/id_ed25519      — klucz PRYWATNY (NIGDY nie udostępniaj!)
# ~/.ssh/id_ed25519.pub  — klucz publiczny (kopiujesz na serwer)

Passphrase: Ustaw silne hasło do klucza prywatnego — jeśli ktoś uzyska dostęp do pliku klucza, nie będzie mógł go użyć bez hasła. Użyj ssh-agent aby nie wpisywać go przy każdym połączeniu.

Kopiowanie klucza publicznego na serwer

# Metoda 1 — ssh-copy-id (najprościej, Linux/Mac)
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@ip-serwera

# Metoda 2 — ręcznie
cat ~/.ssh/id_ed25519.pub | ssh user@ip-serwera "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

# Metoda 3 — jeśli masz już dostęp przez panel hostingu
# Skopiuj zawartość id_ed25519.pub do pola "SSH Keys" w cPanel/DirectAdmin

Sprawdź uprawnienia na serwerze:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
# Te uprawnienia są OBOWIĄZKOWE — SSH odmówi klucza przy nieprawidłowych

Wyłączenie logowania hasłem (sshd_config)

Po upewnieniu się, że logowanie kluczem działa — wyłącz hasła w /etc/ssh/sshd_config:

# Edytuj /etc/ssh/sshd_config:
PasswordAuthentication no
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PermitRootLogin prohibit-password  # lub 'no' jeśli masz sudo user
X11Forwarding no

# Zastosuj zmiany:
systemctl reload sshd

WAŻNE: Przed wyłączeniem haseł przetestuj logowanie kluczem w osobnej sesji SSH. Jeśli wyłączysz hasła bez działającego klucza — utracisz dostęp do serwera. Miej otwartą sesję SSH jako backup.

Plik ~/.ssh/config — skróty połączeń

Zamiast pamiętać parametry każdego serwera, utwórz ~/.ssh/config:

Host mojvps
  HostName 203.0.113.10
  User admin
  Port 22
  IdentityFile ~/.ssh/id_ed25519

Host staging
  HostName staging.mojastrona.pl
  User deploy
  Port 2222
  IdentityFile ~/.ssh/id_ed25519_staging

# Teraz wystarczy:
# ssh mojvps  (zamiast: ssh -i ~/.ssh/id_ed25519 -p 22 [email protected])
# ssh staging

SSH tunneling — dostęp do usług bez ekspozycji portów

SSH tunnel pozwala bezpiecznie dostać się do usług działających na serwerze (phpMyAdmin, Redis, PostgreSQL) bez otwierania ich na świat:

# phpMyAdmin przez tunel (dostępny na localhost:8080)
ssh -L 8080:localhost:80 mojvps
# Otwórz: http://localhost:8080/phpmyadmin/

# PostgreSQL przez tunel (dostępny na localhost:5432)
ssh -L 5432:localhost:5432 mojvps
# Połącz: psql -h localhost -U user dbname

# Redis przez tunel (dostępny na localhost:6379)
ssh -L 6379:localhost:6379 mojvps

# SOCKS5 proxy przez serwer (cały ruch przechodzi przez serwer)
ssh -D 1080 mojvps
# Skonfiguruj przeglądarkę: SOCKS5 localhost:1080

Najczęstsze pytania

Czy SSH z kluczem jest bezpieczniejszy niż hasło? +
Tak — znacznie bezpieczniejszy. Klucz SSH RSA 4096-bit lub Ed25519 jest praktycznie niemożliwy do bruteforce (matematycznie niemożliwe przy obecnych komputerach). Hasło można odgadnąć bruteforce, phishingiem lub wyciekiem. Wyłączenie logowania hasłem (PasswordAuthentication no w sshd_config) eliminuje całą klasę ataków brute-force — Fail2ban staje się zbędny dla SSH. Minimum: Ed25519 lub RSA 4096 + wyłączone logowanie hasłem.
Gdzie trzymać klucz SSH — jakie uprawnienia pliku? +
Klucz prywatny (id_rsa lub id_ed25519) musi mieć uprawnienia 600 (tylko właściciel może czytać). Katalog ~/.ssh musi mieć 700. Plik authorized_keys na serwerze: 600. Jeśli uprawnienia są nieprawidłowe, SSH odmówi użycia klucza. Na Windows klucz przechowuj w C:\Users\USERNAME\.ssh\ — PuTTY używa formatu .ppk, natomiast openssh (wbudowany w Windows 10+) używa formatu PEM identycznego jak Linux.
Co to jest SSH tunneling i kiedy go używać? +
SSH tunnel to szyfrowany kanał przez połączenie SSH, przez który można przekierować ruch TCP. Przypadki użycia: dostęp do phpMyAdmin bez wystawiania portu publicznie (ssh -L 8080:localhost:80 user@serwer → otwórz localhost:8080 w przeglądarce), dostęp do Redis/PostgreSQL przez tunel (-L 6379:localhost:6379), bezpieczne przeglądanie przez SOCKS proxy (-D 1080 user@serwer). Tunel SSH jest szyfrowany i nie wymaga VPN.

Do pracy z kluczami SSH wybieraj serwer z pełną kontrolą

Te VPS-y pozwalają sensownie ćwiczyć logowanie bez hasła, zmianę portu SSH i dodatkowe zabezpieczenia.