Torna al Blog
#SSH
#Smallstep
#Cybersecurity
#AccessControl
#SysAdmin
#DevSecOps
#Linux

Gestione Accessi SSH con Smallstep CA Interna: Oltre le Chiavi Statiche

•Autore: Enzo Carlettini
Gestione Accessi SSH con Smallstep CA Interna: Oltre le Chiavi Statiche

In quante aziende la gestione degli accessi ai server Linux di produzione si basa ancora sulla copia manuale delle chiavi pubbliche nel file ~/.ssh/authorized_keys di ogni singola macchina?

Questo modello, nato negli anni ’90 con la prima specifica di SSH, diventa insostenibile e pericoloso appena il team cresce oltre i 2-3 sviluppatori:

  • Chiavi orfane e mai revocate: Quando un collaboratore o fornitore lascia l’azienda, è quasi impossibile avere la certezza di aver eliminato la sua chiave pubblica da tutti i server e container.
  • Assenza di scadenza: Una chiave SSH statica generata dieci anni fa rimane valida per sempre fino a quando non viene rimossa a mano.
  • Zero integrazione con l’Identity Provider (IdP): Nessuna correlazione con MFA aziendale, SSO o disattivazione centralizzata degli account.

Per risolvere alla radice questi problemi, in Protezione Cloud abbiamo implementato un’architettura di autenticazione SSH basata su Certificati SSH a breve durata (Short-Lived Certificates) emessi da una Certificate Authority (CA) interna Smallstep (step-ca).


1. Come Funzionano i Certificati SSH (OpenSSH Native)

Molti sistemisti ignorano che OpenSSH supporta nativamente i certificati digitali senza richiedere agenti proprietari o demoni pesanti sui server:

  1. La CA interna: Viene generata una coppia di chiavi crittografiche (CA Keypair) custodita in modo blindato.
  2. Fiducia sui Server (Host Trust): Tutti i server Linux dell’infrastruttura vengono configurati per considerare attendibile la CA pubblica tramite una singola riga in /etc/ssh/sshd_config:
    TrustedUserCAKeys /etc/ssh/ssh_user_ca.pub
  3. Emissione Certificato Utente: L’utente non distribuisce più la propria chiave pubblica sui server. Quando deve lavorare, chiede alla CA di firmare la sua chiave pubblica, ricevendo un certificato temporaneo (id_ecdsa-cert.pub) valido ad esempio per 8 o 16 ore.
  4. Accesso Diretto: Quando l’utente si connette via SSH, il server verifica la firma della CA e la data di validità del certificato. Se il certificato è valido e contiene il principal corretto (es. ubuntu, admin, devops), l’accesso è consentito istantaneamente.

2. L’Ecosistema Smallstep (step-ca & step-cli)

Smallstep è una piattaforma open-source per la gestione di infrastrutture a chiave pubblica (PKI) e zero-trust identity.

L’architettura implementata prevede:

+-------------------+      1. Login OIDC (Google/IdP)     +-------------------+
|   Sviluppatore /  | ----------------------------------> |   Smallstep CA    |
|   Sistemista      | <---------------------------------- |   (step-ca)       |
+-------------------+     2. Certificato SSH (8h TTL)     +-------------------+
          |
          | 3. Connessione SSH con Certificato Effimero
          v
+-----------------------------------------------------------------------------+
| Server Linux Produzione (Verifica firma CA con TrustedUserCAKeys)          |
+-----------------------------------------------------------------------------+

3. Esperienza Utente: Rinnovo a 1-Click con Single Sign-On (SSO)

Dalla prospettiva del tecnico o dello sviluppatore, il flusso è totalmente integrato con l’identità aziendale:

  1. All’inizio della giornata lavorativa, l’utente lancia il comando di login:
    step ssh certificate enzo.carlettini@azienda.it ~/.ssh/id_ecdsa
  2. Si apre automaticamente la finestra del browser con l’autenticazione Google Workspace / Microsoft Entra ID protetta da MFA (FIDO2 / TOTP).
  3. Una volta completato il login, la CLI scarica il certificato firmato ~/.ssh/id_ecdsa-cert.pub con validità di 8 ore.
  4. L’utente accede a qualsiasi server dell’infrastruttura senza inserire password e senza che i server debbano conoscere in anticipo la sua chiave!

Alla scadenza delle 8 ore, il certificato cessa di esistere: nessun rischio di chiavi dimenticate su vecchi portatili o backup non protetti.


4. Vantaggi Operativi & Compliance SecOps

  • Revoca Istantanea & Offboarding a Costo Zero: Quando un dipendente lascia l’azienda, è sufficiente sospendere il suo account Google/Microsoft per revocare all’istante l’accesso a tutti i server dell’infrastruttura, senza toccare una sola riga di configurazione sui server.
  • Audit Log Veritieri: Ogni certificato include come metadato l’indirizzo email aziendale univoco dell’utente, consentendo nei log di sistema (/var/log/auth.log) di tracciare con assoluta certezza chi ha eseguito ciascuna sessione SSH.
  • Organizzazione degli Host (~/.ssh/conf.d/): La configurazione client viene standardizzata suddividendo gli host per cliente e ambiente con alias dedicati.

Conclusioni

Passare dalle chiavi statiche authorized_keys ai certificati SSH con Smallstep CA è uno dei passi più efficaci per elevare la postura di sicurezza dell’infrastruttura aziendale verso un modello Zero-Trust reale e verificabile.