Cos'è una chiave pubblica SSH?

Una chiave pubblica SSH è una delle due metà di una coppia di chiavi crittografiche utilizzata per l'autenticazione sicura tramite il protocollo SSH (Secure Shell). Quando si genera una coppia di chiavi SSH, si ottiene una chiave privata (mantenuta segreta sul proprio dispositivo) e una chiave pubblica (condivisa con i server a cui si desidera accedere). Il server utilizza la chiave pubblica per verificare la propria identità senza trasmettere una password.

Le chiavi pubbliche SSH sono memorizzate come una singola riga di testo in formato OpenSSH, contenente tre parti: il tipo di chiave (come ssh-rsa o ssh-ed25519), i dati della chiave codificati in Base64 e un commento opzionale (solitamente user@hostname). All'interno dei dati Base64 è incorporata informazione binaria strutturata che include i parametri dell'algoritmo e il materiale crittografico effettivo.

Le fingerprint sono hash brevi e leggibili dei dati della chiave. Facilitano la verifica e il confronto delle chiavi senza dover leggere l'intera stringa Base64. I due formati di fingerprint più comuni sono SHA-256 (il predefinito moderno) e MD5 (il formato legacy con coppie esadecimali separate da due punti).

Descrizione dello strumento

Questo strumento analizza le chiavi pubbliche SSH in formato OpenSSH ed estrae tutti i metadati importanti. Incolla la tua chiave pubblica e visualizza immediatamente il tipo di chiave, l'algoritmo, la dimensione della chiave in bit, il commento e le fingerprint SHA-256 e MD5 — corrispondenti all'output che si otterrebbe da ssh-keygen -l.

Esempi

Input:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@laptop

Output:

Campo Valore
Tipo di chiave ssh-ed25519
Algoritmo Ed25519
Dimensione chiave 256 bit
Commento user@laptop
Fingerprint SHA-256 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
Fingerprint MD5 MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48

Funzionalità

  • Supporta i tipi di chiave RSA, Ed25519, ECDSA (P-256, P-384, P-521), DSA e Security Key (FIDO)
  • Calcola le fingerprint SHA-256 e MD5 nel formato OpenSSH standard
  • Estrae la dimensione della chiave in bit direttamente dai dati binari della chiave
  • Valida la struttura della chiave, inclusa l'integrità Base64 e la coerenza del tipo incorporato
  • Analizza il campo commento opzionale dalla riga della chiave pubblica

Come funziona

Lo strumento suddivide l'input in tre parti: tipo di chiave, dati Base64 e commento. Decodifica quindi i dati Base64 in binario e legge la struttura interna utilizzando il formato SSH con prefisso di lunghezza, in cui ogni campo inizia con una lunghezza big-endian a 4 byte seguita dai dati del campo. La dimensione della chiave è determinata dai parametri specifici dell'algoritmo — per RSA è la lunghezza in bit del modulo n, per DSA è il numero primo p, e per le chiavi a curva ellittica viene derivata dal nome della curva. Le fingerprint vengono calcolate eseguendo l'hash dei dati binari grezzi della chiave con SHA-256 e MD5.

Tipi di chiave supportati

Identificatore tipo Algoritmo
ssh-rsa RSA
ssh-ed25519 Ed25519
ecdsa-sha2-nistp256 ECDSA (P-256)
ecdsa-sha2-nistp384 ECDSA (P-384)
ecdsa-sha2-nistp521 ECDSA (P-521)
ssh-dss DSA
sk-ssh-ed25519@openssh.com Ed25519-SK (Security Key)
sk-ecdsa-sha2-nistp256@openssh.com ECDSA-SK (Security Key)

Casi d'uso

  • Verifica delle fingerprint delle chiavi — Conferma che una chiave pubblica corrisponda alla fingerprint attesa prima di aggiungerla ad authorized_keys o a un servizio di hosting Git
  • Controllo degli accessi al server — Identifica rapidamente l'algoritmo e la dimensione delle chiavi nel file authorized_keys per individuare chiavi deboli o obsolete
  • Risoluzione dei problemi SSH — Verifica che una chiave sia nel formato corretto, utilizzi l'algoritmo previsto e abbia una struttura valida

FAQ

Dove trovo la mia chiave pubblica SSH? Sulla maggior parte dei sistemi è memorizzata in ~/.ssh/id_ed25519.pub, ~/.ssh/id_rsa.pub o in un percorso simile a seconda dell'algoritmo. È anche possibile eseguire ssh-add -L per elencare le chiavi caricate nel proprio agente SSH.

È sicuro condividere la mia chiave pubblica? Sì. La chiave pubblica è progettata per essere condivisa. Non può essere utilizzata per derivare la chiave privata né per autenticarsi per conto dell'utente.

Perché le fingerprint SHA-256 e MD5 hanno un aspetto diverso? Le fingerprint SHA-256 sono codificate in Base64 e precedute dal prefisso SHA256:, mentre le fingerprint MD5 utilizzano coppie esadecimali separate da due punti precedute dal prefisso MD5:. SHA-256 è il formato predefinito nelle versioni moderne di OpenSSH.