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ć.
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.