Linux

Logowanie przez SSH za pomocą klucza zamiast hasła

Utwórz klucz w Windows, na Macu lub w Linuksie, prześlij go na serwer i wyłącz logowanie hasłem przez SSH bez odcinania sobie dostępu.

2 min czytaniaZaktualizowano 19 października 2026

Z kluczem SSH logujesz się bez wpisywania hasła, a jeśli dodatkowo wyłączysz hasła, boty testujące kolejne kombinacje na Twoim serwerze nie będą już miały czego zgadywać.

Klucz prywatny zostaje na Twoim komputerze; klucz publiczny jest kopiowany do pliku authorized_keys na serwerze VPS
Klucz prywatny nigdy nie opuszcza Twojego komputera.

1. Utwórz klucz (na swoim komputerze)

Windows 10/11, Mac i Linux mają wbudowane SSH. Otwórz terminal (w Windows: PowerShell) i wpisz:

ssh-keygen -t ed25519

Naciśnij Enter, aby zapisać klucz w domyślnej lokalizacji, a jeśli chcesz, ustaw hasło do klucza (passphrase). W folderze .ssh Twojego użytkownika powstaną dwa pliki: id_ed25519 (klucz prywatny: nigdy go nikomu nie udostępniaj) i id_ed25519.pub (klucz publiczny).

2. Prześlij klucz na serwer

Z Maca lub Linuksa:

ssh-copy-id root@203.0.113.10

Z Windows (PowerShell):

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@203.0.113.10 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

Po raz ostatni pojawi się prośba o hasło.

3. Przetestuj klucz

ssh root@203.0.113.10

Jeśli logowanie przebiegnie bez pytania o hasło serwera, wszystko działa. Nie przechodź do kroku 4, jeśli to nie zadziałało.

4. Wyłącz logowanie hasłem przez SSH

Nie zamykając poprzedniej sesji (na wszelki wypadek), wykonaj na serwerze:

echo "PasswordAuthentication no" > /etc/ssh/sshd_config.d/00-tylko-klucze.conf
sshd -t && systemctl restart ssh

W Rocky Linux 8 zmień wartość w linii PasswordAuthentication na no bezpośrednio w pliku /etc/ssh/sshd_config; usługa nazywa się tam sshd: systemctl restart sshd.

Nazwa pliku celowo zaczyna się od 00-: w SSH obowiązuje pierwsza wczytana wartość, a niektóre obrazy systemu zawierają inny plik, który ponownie włącza hasła.

Otwórz drugi terminal i sprawdź, czy nadal logujesz się kluczem, zanim zamkniesz pierwszy.

Jeśli zgubisz klucz

Konsola VNC w panelu nie korzysta z SSH, więc tam hasło nadal działa. Jeśli go nie pamiętasz, wygeneruj nowe, wybierając Ustawienia → Zresetuj hasło, zaloguj się przez VNC i dodaj nowy klucz do pliku /root/.ssh/authorized_keys.

Do przesyłania plików (WinSCP, FileZilla) użyj tego samego klucza prywatnego: jak przesłać pliki.

Powiązane artykuły

Wróć do centrum pomocy

Nie możesz znaleźć tego, czego szukasz?

Otwórz zgłoszenie w panelu, a odpowiemy w mniej niż 5 minut.