1.  [HostGrade.pl](/)
2.  [Baza wiedzy](/baza-wiedzy/)
3.  SSH keys - konfiguracja na VPS

1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  SSH keys - konfiguracja na VPS

# SSH keys - konfiguracja kluczy SSH na VPS i GitHub

Kategoria: [Serwer VPS](/baza-wiedzy/) · Aktualizacja: Październik 2026

⚡ W skrócie · 4 min czytania

-   Jak wygenerować klucz SSH, dodać go do serwera VPS i GitHub. Konfiguracja ~/.ssh/config dla wielu kluczy, bezpieczeństwo, ssh-agent, Ed25519 vs RSA.
-   Dlaczego klucze SSH zamiast hasła?
-   Ed25519 czy RSA? Który algorytm wybrać?
-   Generowanie klucza SSH.
-   Dodanie klucza do serwera VPS.

## Dlaczego klucze SSH zamiast hasła?

Logowanie hasłem do serwera naraża go na ataki brute-force - boty stale skanują port 22 i próbują popularnych haseł. Klucz SSH to para kryptograficzna: **klucz prywatny** (tylko u ciebie) i **klucz publiczny** (na serwerze). Bez klucza prywatnego nikt nie zaloguje się na konto, nawet znając hasło - bo po skonfigurowaniu kluczy można wyłączyć logowanie hasłem.

Powiązane tematy: [UFW firewall na VPS](/baza-wiedzy/ufw-firewall-konfiguracja/), [SFTP vs FTP](/baza-wiedzy/ftp-sftp-roznice-konfiguracja/), [Git deploy na hosting](/baza-wiedzy/git-deploy-hosting/) oraz [Docker na VPS](/baza-wiedzy/docker-na-vps/). Porównaj oferty VPS na [kalkulatorze kosztów](/kalkulator/).

## Ed25519 czy RSA? Który algorytm wybrać?

Algorytm

Długość klucza

Bezpieczeństwo

Kompatybilność

**Ed25519**

256 bitów (EdDSA)

Bardzo wysokie

OpenSSH 6.5+ (2014)

RSA 4096

4096 bitów

Wysokie

Wszystkie systemy

RSA 2048

2048 bitów

Akceptowalne do 2030

Wszystkie systemy

ECDSA

256/384/521 bitów

Dobre

Szerokie wsparcie

**Rekomendacja: Ed25519** - krótki, szybki, bezpieczny. Używaj RSA 4096 tylko jeśli łączysz się ze starymi systemami (np. CentOS 6, stare routery).

## Generowanie klucza SSH

```
# Ed25519 (zalecany)
ssh-keygen -t ed25519 -C "twoj@email.com"

# RSA 4096 (alternatywa dla starszych systemów)
ssh-keygen -t rsa -b 4096 -C "twoj@email.com"
```

Polecenie zapyta o:

1.  **Lokalizacja pliku** - domyślnie `~/.ssh/id_ed25519` (naciśnij Enter)
2.  **Hasło (passphrase)** - **zalecane!** Chroni klucz prywatny jeśli plik zostanie skradziony

Powstaną dwa pliki:

-   `~/.ssh/id_ed25519` - klucz prywatny (NIGDY nie udostępniaj)
-   `~/.ssh/id_ed25519.pub` - klucz publiczny (kopiujesz na serwery)

```
# Wyświetl klucz publiczny do skopiowania
cat ~/.ssh/id_ed25519.pub
```

## Dodanie klucza do serwera VPS

### Metoda 1 - ssh-copy-id (najprostsza)

```
# Pierwsza konfiguracja - musisz znać hasło root
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@adres-serwera

# Lub dla konkretnego portu
ssh-copy-id -i ~/.ssh/id_ed25519.pub -p 2222 root@adres-serwera
```

### Metoda 2 - ręcznie przez SSH

```
ssh root@adres-serwera
mkdir -p ~/.ssh
echo "TUTAJ_WKLEJ_KLUCZ_PUBLICZNY" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
```

### Metoda 3 - panel hostingowy

Większość dostawców VPS (Hetzner, OVH, [Contabo](/out/contabo/#reklama "Contabo")) pozwala dodać klucz SSH podczas tworzenia serwera w panelu - klucz jest automatycznie instalowany dla root.

## Wyłączenie logowania hasłem (po instalacji klucza)

Dopiero po potwierdzeniu że logowanie kluczem działa - edytuj `/etc/ssh/sshd_config`:

```
sudo nano /etc/ssh/sshd_config

# Zmień lub dodaj te linie:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
PermitRootLogin prohibit-password  # lub 'no' jeśli masz sudo user

# Zapisz i zrestartuj SSH
sudo systemctl restart sshd
```

**Uwaga:** Nie zamykaj aktualnej sesji SSH przed sprawdzeniem czy nowe połączenie działa. Miej otwarte dwa okna terminala.

## Konfiguracja wielu kluczy - ~/.ssh/config

Plik `~/.ssh/config` pozwala przypisać różne klucze do różnych serwerów i używać krótkich aliasów:

```
# Serwer produkcyjny
Host prod
    HostName 192.168.1.100
    User root
    IdentityFile ~/.ssh/id_ed25519_prod
    Port 22

# Serwer staging
Host staging
    HostName staging.example.com
    User deploy
    IdentityFile ~/.ssh/id_ed25519_staging

# GitHub
Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_github

# Prywatne repozytorium GitLab
Host gitlab-private
    HostName gitlab.com
    User git
    IdentityFile ~/.ssh/id_ed25519_work
```

Teraz możesz się logować przez alias:

```
ssh prod          # zamiast: ssh -i ~/.ssh/id_ed25519_prod root@192.168.1.100
ssh staging       # zamiast: ssh -i ~/.ssh/... deploy@staging.example.com
git clone git@gitlab-private:firma/repo.git  # użyje klucza work
```

## Dodanie klucza do GitHub/GitLab

```
# Wyświetl klucz publiczny
cat ~/.ssh/id_ed25519.pub

# Skopiuj wynik (zaczyna się od "ssh-ed25519 AAAA...")
```

1.  **GitHub:** Settings → SSH and GPG keys → New SSH key → wklej klucz publiczny
2.  **GitLab:** User Settings → SSH Keys → wklej klucz publiczny

```
# Test połączenia z GitHub
ssh -T git@github.com
# Oczekiwane: Hi username! You've successfully authenticated...
```

## ssh-agent - zarządzanie kluczami z passphrase

Jeśli klucz ma hasło, ssh-agent przechowuje odblokowany klucz w pamięci na czas sesji:

```
# Uruchom agenta (zwykle automatyczny w Linux/Mac)
eval "$(ssh-agent -s)"

# Dodaj klucz (podasz passphrase raz)
ssh-add ~/.ssh/id_ed25519

# Lista załadowanych kluczy
ssh-add -l

# Na macOS - przechowaj passphrase w Keychain
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
```

Na Windows - użyj PowerShell i usługi `ssh-agent` lub PuTTY Pageant.

## Bezpieczeństwo - dobre praktyki

-   **Jeden klucz per urządzenie** - jeśli laptop zostanie skradziony, usuwasz tylko ten klucz z serwerów
-   **Zawsze passphrase** na kluczach produkcyjnych
-   **Rotacja kluczy co rok** - generuj nowy, dodaj na serwery, usuń stary
-   **Przechowuj klucz prywatny tylko lokalnie** - nie kopiuj do chmury (Dropbox, GitHub, email)
-   **Uprawnienia plików:** `chmod 600 ~/.ssh/id_*`, `chmod 700 ~/.ssh/`
-   **Sprawdzaj authorized\_keys** regularnie - usuń klucze nieużywanych pracowników

## Powiązane strony

-   [Ranking i porównanie VPS
    
    Aktualne ceny VPS z pełnym kosztem 2-letnim (TCO) i bez ukrytych opłat odnowienia.
    
    ](/vps/)
-   [UFW firewall - konfiguracja na VPS](/baza-wiedzy/ufw-firewall-konfiguracja/)
-   [FTP vs SFTP - różnice i konfiguracja](/baza-wiedzy/ftp-sftp-roznice-konfiguracja/)
-   [Git deploy na hosting](/baza-wiedzy/git-deploy-hosting/)
-   [Docker na VPS - instalacja i konfiguracja](/baza-wiedzy/docker-na-vps/)
-   [Porównanie serwerów VPS](/vps/)
-   [Jaki VPS wybrać?](/jaki-vps-wybrac/)

Autor: [Redakcja HostGrade.pl](/autorzy/) Zespół redakcyjny · Aktualizacja: 8 kwietnia 2026

Artykuły HostGrade.pl przygotowuje i aktualizuje redakcja serwisu. Ceny startowe, ceny odnowienia i warunki planów sprawdzamy w cennikach i regulaminach dostawców, a potem liczymy całkowity koszt za 2 lata (cena startowa plus odnowienia). Zasady zbierania danych i liczenia kosztów opisujemy na stronie Metodologia. Linki partnerskie oznaczamy jako #reklama.

[O redakcji i metodologii →](/autorzy/)