 Autor: [Monika Wojciechowska](/autorzy/monika-wojciechowska) Specjalistka SEO i treści webowych · Zweryfikowano Kwiecień 2026

1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  SSH — klucze i konfiguracja

# 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 "twoj\_email@domena.pl"

# RSA 4096 (kompatybilność ze starszymi systemami)
ssh-keygen -t rsa -b 4096 -C "twoj\_email@domena.pl"

# 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 admin@203.0.113.10)
# 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.

Mikrus

Dobry do nauki kluczy SSH, tuneli i deployu przez terminal.

VPS

[Aktywuj rabat →](/out/mikrus)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus)

Contabo

Rozsądna opcja, jeśli potrzebujesz większego środowiska testowego.

DevOps

[Aktywuj rabat →](/out/contabo)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo)

ProSerwer.pl

Dla osób, które wolą polskiego dostawcę i własną konfigurację SSH.

PL VPS

[Aktywuj rabat →](/out/proserwer-pl)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/proserwer)

## Powiązane strony

-   [phpMyAdmin — bezpieczeństwo](/baza-wiedzy/phpmyadmin-bezpieczenstwo)
-   [Bezpieczeństwo WordPress](/baza-wiedzy/bezpieczenstwo-wordpress-hosting)
-   [FTP, SFTP i SSH na hostingu](/baza-wiedzy/ftp-sftp-ssh-hosting)
-   [Podstawowe komendy Linux na VPS](/baza-wiedzy/linux-komendy-vps)
-   [Ranking VPS](/vps/)
-   [Baza wiedzy](/baza-wiedzy/)