Le password per SSH vengono indovinate. Le chiavi no. Passare il tuo VPS all'accesso con chiave è il singolo miglioramento di sicurezza più grande che puoi fare e richiede circa cinque minuti.
Come funzionano le chiavi SSH
Crei una coppia di file. La chiave privata resta sul tuo computer e non viene mai condivisa. La chiave pubblica va sul server. Quando ti connetti, il server chiede al tuo computer di dimostrare di possedere la chiave privata corrispondente, senza che la chiave attraversi mai la rete.
1. Crea una coppia di chiavi
ssh-keygen -t ed25519 -C "me@laptop"
Le chiavi Ed25519 sono corte, veloci e moderne. Scegli una passphrase quando richiesto, così un laptop rubato non significa un server rubato. Su Windows 10 e 11 lo stesso comando funziona in PowerShell.
2. Copia la chiave pubblica sul server
ssh-copy-id user@your.server.ip
Senza ssh-copy-id, aggiungi il contenuto di ~/.ssh/id_ed25519.pub a ~/.ssh/authorized_keys sul server, poi esegui chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys.
3. Testa prima di disattivare le password
Apri un secondo terminale e accedi con la chiave. Tieni aperta la prima sessione finché non funziona, così un errore non può lasciarti fuori.
4. Disattiva l'accesso con password
sudo nano /etc/ssh/sshd_config.d/99-hardening.conf
PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
sudo sshd -t && sudo systemctl reload ssh
Il controllo sshd -t intercetta i refusi prima che possano compromettere il tuo accesso. Su alcuni sistemi il servizio si chiama sshd invece di ssh.
5. Una configurazione client ordinata
# ~/.ssh/config
Host myvps
HostName your.server.ip
User deploy
IdentityFile ~/.ssh/id_ed25519
Ora ti basta digitare ssh myvps.
Buone pratiche
- Usa una chiave separata per ogni dispositivo, così puoi revocarne una senza toccare le altre.
- Usa
ssh-agentper inserire la passphrase una sola volta per sessione. - Rimuovi le chiavi da
authorized_keysquando un dispositivo viene perso o un dipendente se ne va. - Aggiungi fail2ban per ridurre il rumore nei log, come nella nostra checklist di hardening in 15 minuti.