IT
EspañolEnglishFrançaisDeutschPortuguêsItaliano
Accedi Inizia gratis
EC2

Certificati SSH spiegati da zero: entrare nelle tue macchine senza distribuire chiavi

Che cos'è un certificato SSH, in cosa si differenzia dalla chiave di sempre e perché le grandi aziende li usano: una chiave che scade da sola, che non va copiata su ogni macchina e che si può limitare a un utente e a un IP. Con i comandi per provarlo su una macchina AWS.

⏱ 30 minuti ◎ Intermedio Aggiornata il 30/10/2026

Il modo abituale di entrare in una macchina Linux sul cloud è una chiave SSH: un file sul tuo computer e la sua metà pubblica copiata sulla macchina. Funziona, ma guarda cosa comporta quando c'è più di una persona e più di una macchina: ogni chiave va copiata su ogni macchina, ogni persona che se ne va lascia la sua chiave su tutte finché qualcuno non si ricorda di cancellarla, e una chiave persa vale per sempre. Sai oggi, con certezza, quante chiavi possono entrare nel tuo server di produzione e di chi sono?

I certificati SSH risolvono esattamente questo. È la stessa tecnologia che Simplio usa per la sua chiave di riserva e la stessa che Lightsail usa per la sua console web, e non serve essere esperti per capirla.

Prima di iniziare: cosa significa ogni cosa

Chiave SSH
Una coppia di file: la privata (resta sul tuo computer, non si condivide mai) e la pubblica (si copia sulla macchina, nel file authorized_keys dell'utente). La macchina fa entrare chi dimostra di avere la privata.
Certificato SSH
La tua chiave pubblica, firmata da un'autorità, con un nome, una data di scadenza e una lista di utenti per cui vale. La macchina non ha bisogno di conoscere la tua chiave: le basta fidarsi di chi l'ha firmata.
Autorità di certificazione (CA)
Un'altra chiave SSH, ma che serve solo a firmare. La sua pubblica si copia sulle macchine una volta; la sua privata si custodisce molto bene, perché chi ce l'ha può firmare certificati.
Principal
Il nome utente per cui vale il certificato. Un certificato per "ubuntu" non serve a entrare come "root".
Validità
Da quando e fino a quando vale il certificato. Può essere un anno o cinque minuti.
authorized_keys
Il file, dentro la cartella .ssh di ogni utente della macchina, con le chiavi pubbliche che possono entrare come lui. Ammette anche una riga speciale che dice "accetta certificati firmati da questa autorità".

Passo dopo passo

  1. Capisci la differenza con un esempio

    Con le chiavi: perché Anna entri in dieci macchine, la sua chiave pubblica si copia in dieci file. Quando Anna se ne va, bisogna cancellarla da dieci posti, e se se ne dimentica uno, Anna (o chi ha il suo portatile) continua a entrare. Con i certificati: le dieci macchine si fidano di una autorità. Ad Anna si firma un certificato che vale fino a venerdì. Sabato, Anna non entra in nessuna, senza toccare neanche una macchina. E se gliene si firma uno nuovo ogni mattina, non c'è mai nulla da revocare.

  2. Crea un'autorità (una volta, sul tuo computer)

    ssh-keygen -t ed25519 -f mi_ca -C "CA de mi empresa"

    Escono due file. mi_ca è la privata: conservala in un gestore di password o su un disco cifrato, e non copiarla mai su nessuna macchina. mi_ca.pub è quella che andrà sulle macchine.

  3. Di' alla macchina di fidarsi della tua autorità

    Ci sono due modi. Quello globale, in /etc/ssh/sshd_config, vale per tutti gli utenti:

    TrustedUserCAKeys /etc/ssh/mi_ca.pub

    E quello locale, senza toccare la configurazione di SSH: una riga nell'authorized_keys dell'utente, che vale solo per lui:

    cert-authority,principals="ubuntu" ssh-ed25519 AAAA... CA de mi empresa

    Il secondo è quello che conviene su Lightsail, perché Lightsail usa già TrustedUserCAKeys per la propria console web e può essercene una sola. Ricarica SSH (sudo systemctl reload ssh) e la macchina accetta già i tuoi certificati.

  4. Firma un certificato per una persona

    La persona ti manda la sua chiave pubblica (id_ed25519.pub). Tu la firmi, dicendo per quale utente vale e quanto dura:

    ssh-keygen -s mi_ca -I "ana-portatil" -n ubuntu -V +1w id_ed25519.pub

    Esce id_ed25519-cert.pub: glielo restituisci e lo mette accanto alla sua chiave. -I è un nome per il registro della macchina (così sai chi è entrato), -n l'utente permesso e -V +1w una settimana di validità. Puoi mettere +5m e avrai un certificato di cinque minuti.

  5. Entra e verifica

    ssh -i id_ed25519 ubuntu@IP.DE.LA.MAQUINA

    SSH usa il certificato da solo. Sulla macchina, sudo journalctl -u ssh | grep ana-portatil ti mostra l'accesso con il nome che hai messo firmando. Passata la validità, lo stesso comando risponde "Permission denied" senza che nessuno abbia toccato nulla.

  6. Aggiungi condizioni: solo da un IP

    Firmando puoi aggiungere restrizioni. La più utile: che il certificato valga solo da un indirizzo preciso.

    ssh-keygen -s mi_ca -I "copias-nocturnas" -n backup -V +1d -O source-address=203.0.113.10 id_backup.pub

    Se quel certificato trapela, da qualsiasi altro IP non serve. È quello che fa la chiave di riserva di Simplio: certificati di cinque minuti, per un solo utente, validi solo dall'IP del server di Simplio.

Cosa può andare storto

"Permission denied" anche se il certificato è corretto

Il più comune: il principal non coincide (hai firmato per "ubuntu" ed entri come "admin"), la validità è già passata, oppure l'ora della macchina è sbagliata (i certificati dipendono dall'orologio; controlla con date e attiva la sincronizzazione dell'ora).

La macchina aveva già TrustedUserCAKeys

È il caso di Lightsail e di alcune immagini. Non cambiarlo: perderesti la console web. Usa la riga cert-authority nell'authorized_keys dell'utente, che convive senza problemi.

Ho perso la privata della CA

Non puoi firmare altri certificati, ma quelli già firmati continuano a valere fino alla scadenza. Crea una CA nuova e sostituisci la pubblica sulle macchine mentre i certificati vecchi entrano ancora. Per questo le validità corte sono un vantaggio: il cambio si completa da solo.

Mi hanno rubato la privata della CA

Chi ce l'ha può firmare certificati per tutte le tue macchine. Sostituisci la pubblica su tutte al più presto; se hai usato source-address, il ladro deve inoltre trovarsi su quell'IP. È il motivo per custodirla fuori dalle macchine e fuori dalla posta.

In Simplio

Simplio usa certificati SSH sotto il cofano perché tu non debba farlo. Il terminale nel browser entra con la chiave temporanea che AWS consegna per ogni sessione, senza che nessuno riceva un file. E la chiave di riserva è esattamente quello che spiega questa guida, portato al limite: un utente senza password sulla macchina, che accetta solo certificati firmati da Simplio, di cinque minuti, per quell'utente e solo dall'IP di Simplio, con il tuo codice del doppio fattore a ogni uso. Lasci la chiave con un pulsante e Simplio verifica ogni giorno che apra ancora. Come funziona la chiave di riserva.

La stessa cosa, in AWS e in Simplio

Nella console di AWSIn Simplio
Dare accesso a una personaCopiare la sua chiave su ogni macchinaConcederle la macchina in Simplio: il terminale del browser usa la chiave temporanea che dà AWS
ToglierglieloCancellare la sua chiave da ogni macchina, senza dimenticarne nessunaToglierle la macchina in Simplio
Accesso di emergenzaCreare la tua CA, distribuire la pubblica, firmare a mano un certificato quando serveChiave di riserva: certificato di cinque minuti, firmato da Simplio, solo dal suo IP, con doppio fattore
Sapere chi è entratoLeggere il registro di SSH di ogni macchinaRegistro attività di Simplio: chi, quale macchina, quando, da quale IP

Provalo gratis per 15 giorni Vedi come funziona

Tutto questo, senza la console di AWS

Simplio è un pannello in italiano per gestire i tuoi account AWS: macchine, copie programmate, database, domini, e-mail e quanto ti addebita AWS, con permessi per persona e doppio fattore. Senza installare nulla sui tuoi server.

Inizia gratis per 15 giorni, senza carta

Sei già cliente? Area clienti.