Guide / Guida

Chiavi SSH Ed25519: crearle e usarle su un server Linux

Generare una coppia di chiavi, autorizzare quella pubblica e verificare l’accesso da Windows, Linux o macOS.

Una chiave SSH permette al server di riconoscere il tuo PC senza inviare la password dell’account remoto. La coppia comprende una chiave privata, da conservare sul client, e una pubblica, da autorizzare sul server. Una passphrase protegge la chiave privata: non è la password dell’utente Linux.

1. Genera la coppia sul PC locale

Apri PowerShell o Terminale sul tuo computer, non nella sessione del server, ed esegui:

ssh-keygen -t ed25519 -C "pc-personale"

Il programma propone un percorso nella cartella .ssh del tuo utente. Se esiste già una chiave, non sovrascriverla: scegli un altro nome e annotalo. Imposta una passphrase. Con il percorso standard otterrai id_ed25519, privata, e id_ed25519.pub, pubblica. La privata non va inviata al server, pubblicata o condivisa.

2. Copia soltanto la pubblica

Su Linux, con ssh-copy-id disponibile, puoi autorizzarla così:

ssh-copy-id -i ~/.ssh/id_ed25519.pub mario@192.168.1.50

Su Windows, copia prima la pubblica in un file temporaneo del tuo account remoto:

scp "$env:USERPROFILE\.ssh\id_ed25519.pub" mario@192.168.1.50:~/chiave-pc.pub

Su macOS, se ssh-copy-id non è presente, usa lo stesso percorso manuale sostituendo il file locale con ~/.ssh/id_ed25519.pub. Per una porta personalizzata, scp richiede -P 2222 con P maiuscola. Sostituisci il nome del file se hai generato una chiave con un nome diverso.

3. Autorizza la chiave sul server Linux

Nel percorso manuale, entra via SSH con l’account da autorizzare e controlla il file con cat ~/chiave-pc.pub: deve contenere una chiave pubblica che inizia con ssh-ed25519. Poi, sul server, esegui:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
cat ~/chiave-pc.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Il doppio segno >> aggiunge la chiave senza sostituire quelle già presenti. Questi percorsi riguardano il server Linux e l’utente attuale; un server OpenSSH su Windows richiede il proprio percorso di autorizzazione.

4. Verifica in una nuova finestra

Lascia aperta la sessione funzionante. Sul PC apri un secondo terminale e forza la prova con la chiave. Su Windows:

ssh -o PreferredAuthentications=publickey -o IdentitiesOnly=yes -i "$env:USERPROFILE\.ssh\id_ed25519" mario@192.168.1.50

Su Linux o macOS usa ~/.ssh/id_ed25519 come percorso dopo -i. La richiesta della passphrase locale è normale; la prova deve completarsi senza ricadere sulla password dell’account remoto. Dopo il login verifica whoami.

Se la chiave viene rifiutata

Controlla che sia stata aggiunta all’utente corretto, che la riga pubblica sia integra e che cartella e file appartengano a quell’utente. Usa ssh -v sul client per vedere quale chiave viene offerta. Prima di disabilitare un eventuale accesso con password, verifica anche di avere una console di recupero e almeno una nuova sessione funzionante con la chiave. La passphrase e un backup protetto della privata aiutano a gestire anche il cambio del PC.

Documentazione ufficiale

Il prossimo passo

Cambiare PC senza perdere l’accesso

Per un nuovo computer puoi generare una nuova coppia e aggiungere la pubblica al server mentre la vecchia sessione funziona. Prova l’accesso dal nuovo PC, quindi rimuovi da authorized_keys soltanto la riga del dispositivo dismesso. Il commento assegnato alla chiave aiuta a riconoscerla. Se usi un nome di file diverso da quello standard, indica il percorso con -i. Copiare la chiave privata su molti dispositivi rende più difficile revocare un singolo computer: una coppia per dispositivo semplifica la gestione. Conserva sempre un accesso di recupero indipendente dal portatile che usi ogni giorno.