OffshoreVps
Sicurezza5 ott 20266 min di letturaDi il team di OffshoreVps

Le chiavi SSH spiegate: proteggi l’accesso al tuo VPS in 5 minuti

Crea una chiave Ed25519, copiala sul server, disattiva in sicurezza l’accesso con password e prepara una configurazione SSH ordinata. Fallo su ogni nuovo server.

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.

Finestra del terminale su un VPS che mostra i comandi usati per le chiavi SSH di un VPS, a partire da “ssh-keygen -t ed25519 -C "me@laptop"”
Il tipo di comandi che eseguirai sul tuo server in questa guida.

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.

I passaggi di questa guida in ordine: 1. Come funzionano le chiavi SSH; 2. 1. Crea una coppia di chiavi; 3. 2. Copia la chiave pubblica sul server; 4. 4. Disattiva l’accesso con password; 5. 5. Una configurazione client ordinata; 6. Buone pratiche
I passaggi di questa guida, in ordine.

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-agent per inserire la passphrase una sola volta per sessione.
  • Rimuovi le chiavi da authorized_keys quando 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.