Cos'è una coppia di chiavi SSH?

Una coppia di chiavi SSH è un insieme di due chiavi crittografiche utilizzate per autenticare un utente su un server remoto senza password. La coppia è costituita da una chiave privata, mantenuta segreta sulla macchina dell'utente, e una chiave pubblica, posizionata sul server remoto. Durante la connessione, il server sfida il client a provare il possesso della chiave privata — senza mai trasmettere la chiave privata stessa. Questo approccio asimmetrico è significativamente più sicuro dell'autenticazione basata su password perché non esiste un segreto condiviso che possa essere intercettato o sottoposto a attacco di forza bruta.

Le coppie di chiavi SSH vengono generate utilizzando algoritmi di crittografia a chiave pubblica. I più utilizzati sono Ed25519, un moderno algoritmo a curva ellittica noto per le sue dimensioni ridotte e l'elevata sicurezza, e RSA, un algoritmo collaudato nel tempo che si basa sulla difficoltà di fattorizzare numeri interi grandi. Ed25519 è consigliato per le nuove chiavi grazie alle sue prestazioni superiori e alla resistenza agli attacchi sui canali laterali.

Descrizione dello strumento

Il generatore di coppie di chiavi SSH crea coppie di chiavi SSH Ed25519 o RSA crittograficamente sicure direttamente nel tuo browser utilizzando l'API Web Crypto. Nessun dato viene inviato a un server — tutto il materiale chiave viene generato localmente sul tuo dispositivo. Puoi facoltativamente aggiungere un commento (tipicamente user@hostname) per aiutare a identificare la chiave in seguito. Le chiavi pubbliche e private generate possono essere copiate negli appunti o scaricate come file, pronte per l'uso con ssh-copy-id o qualsiasi client SSH.

Esempi

Chiave pubblica Ed25519

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@hostname

Chiave pubblica RSA (4096-bit)

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC2... user@hostname

Chiave privata (formato OpenSSH)

-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAAB...
-----END OPENSSH PRIVATE KEY-----

Caratteristiche

  • Supporto Ed25519 e RSA: Scegli tra un moderno algoritmo a curva ellittica o l'algoritmo RSA classico
  • Opzioni di dimensione della chiave RSA: Seleziona chiavi RSA da 2048, 3072 o 4096-bit per bilanciare sicurezza e prestazioni
  • Campo commento opzionale: Allega un commento nello stile user@hostname per aiutare a identificare la chiave tra le macchine
  • Generazione lato client: Le chiavi vengono generate interamente nel tuo browser utilizzando l'API Web Crypto — nulla viene trasmesso o archiviato
  • Download con un clic: Salva i file di chiave pubblica e privata direttamente con i nomi file corretti (id_ed25519, id_ed25519.pub, id_rsa, id_rsa.pub)

Casi d'uso

  • Configurazione dell'accesso al server: Genera una coppia di chiavi una volta e distribuisci la chiave pubblica a qualsiasi numero di server Linux/Unix remoti tramite ~/.ssh/authorized_keys per abilitare l'accesso SSH senza password
  • Autenticazione di hosting Git: Aggiungi la chiave pubblica a GitHub, GitLab o Bitbucket per autenticare le operazioni git push e git pull senza inserire le credenziali ogni volta
  • Pipeline CI/CD: Crea una coppia di chiavi di distribuzione dedicata per script automatizzati o agenti di build che necessitano di accesso SSH a server o repository privati

Come funziona

La generazione delle chiavi utilizza l'API crypto.subtle integrata nel browser (Web Crypto). Per Ed25519, lo scalare privato grezzo a 32 byte e la chiave pubblica a 32 byte vengono impacchettati nel formato wire OpenSSH (openssh-key-v1). Per RSA, la chiave viene esportata in formato PKCS#8 DER e avvolta in un envelope PEM standard. Il blob della chiave pubblica viene codificato nel formato wire SSH (nome dell'algoritmo con prefisso di lunghezza seguito dal materiale chiave) e codificato in Base64, corrispondendo al formato previsto dal file authorized_keys di OpenSSH.

Suggerimenti

  • Dopo il download, imposta i permessi corretti sul file della chiave privata: chmod 600 ~/.ssh/id_ed25519. SSH rifiuterà di utilizzare una chiave privata leggibile da altri utenti.
  • Utilizza Ed25519 a meno che non hai bisogno di compatibilità con sistemi più vecchi che non lo supportano. Produce chiavi più corte ed è più veloce di RSA.
  • Il campo commento non influisce sulla forza crittografica della chiave — è puramente per l'identificazione umana e può essere modificato in seguito con ssh-keygen -c.
  • Per la massima compatibilità RSA con server legacy, utilizza chiavi a 4096-bit. Per server moderni, Ed25519 è preferito indipendentemente dalla dimensione della chiave RSA.