YubiKey para SSH y GitHub: la guía técnica para developers
Guide e Tutorial

YubiKey per SSH e GitHub: la guida tecnica per developer

La tua chiave SSH privata vive in un file di testo semplice in ~/.ssh/. Se qualcuno accede al tuo laptop o lo infetta con malware, può copiarla in secondi. Non ha bisogno della tua password né della tua impronta.

Una YubiKey cambia tutto. La chiave privata non esce mai dall'hardware — nemmeno tu puoi esportarla. Senza la chiave fisica nella porta USB o vicino all'NFC, non c'è autenticazione possibile.

Quello che configurerai in questa guida
  • Una chiave SSH supportata da hardware FIDO2
  • Firma dei commit di Git con quella stessa chiave
  • YubiKey come chiave di sicurezza su GitHub (2FA)

Perché cambia il modello di minaccia

Una normale chiave SSH è un file. Si può copiare, perdere in un backup mal configurato o rubare con malware che legge il disco.

Una chiave SSH supportata da YubiKey (-sk, da "security key") si genera dentro il chip FIDO2. Il sistema salva solo un riferimento. Senza la chiave fisica collegata, quel riferimento non serve a nulla.

Inoltre, puoi richiedere la verifica tattile a ogni utilizzo. Anche se qualcuno ha accesso remoto alla tua macchina, avrebbe bisogno di toccare fisicamente la YubiKey per autenticarsi.


Generare una chiave SSH supportata da YubiKey

Ti serve OpenSSH 8.2 o superiore. È incluso in macOS e nella maggior parte delle distribuzioni Linux moderne. Su Windows, usa il client OpenSSH integrato o WSL.

1
Genera la chiave residente

Esegui ssh-keygen -t ed25519-sk -O resident -O verify-required -C "tua-email@dominio.com". L'opzione resident salva la chiave anche nella YubiKey, non solo sul tuo disco.

2
Conferma con PIN e tocco

Il terminale ti chiederà il PIN della YubiKey e poi di toccare il sensore. Così si genera la coppia di chiavi dentro il chip.

3
Copia la chiave pubblica

Si genera id_ed25519_sk.pub in ~/.ssh/. Quella è quella che aggiungi a GitHub, GitLab o al authorized_keys del tuo server.

4
Testa la connessione

Connettiti via SSH come sempre. Il sistema ti chiederà di toccare la YubiKey prima di autenticarti.

Se cambi laptop

Con -O resident puoi recuperare la chiave dalla stessa YubiKey su un nuovo computer, con ssh-keygen -K. Non hai bisogno di rigenerarla da zero.


Firma i tuoi commit di Git con la stessa chiave

Da Git 2.34 puoi firmare i commit usando una chiave SSH al posto di GPG. È la stessa YubiKey, senza configurare un secondo sistema di firma.

1
Attiva il formato SSH per le firme

Esegui git config --global gpg.format ssh.

2
Indica quale chiave usare per firmare

Esegui git config --global user.signingkey ~/.ssh/id_ed25519_sk.pub.

3
Attiva la firma automatica

Esegui git config --global commit.gpgsign true. Ogni commit chiederà di toccare la YubiKey.

4
Registra la chiave come "Signing Key" su GitHub

In Settings → SSH and GPG keys → New SSH key, carica la stessa chiave pubblica ma come tipo Signing Key, non Authentication Key.

Da qui in poi, i tuoi commit appaiono come Verified su GitHub. Chiunque può verificare che provengono dalla tua chiave fisica, non solo dal tuo nome utente.


Attiva YubiKey come 2FA su GitHub

1
Entra in Security keys

Settings → Password and authentication → Security keys → Add.

2
Connetti o avvicina la YubiKey

Via USB o NFC, a seconda del modello. GitHub la rileva come chiave WebAuthn/FIDO2.

3
Tocca il sensore quando richiesto

Conferma la registrazione. Da ora in poi, il login richiederà la chiave fisica, non un codice temporaneo.

Registra due chiavi di sicurezza su GitHub

GitHub consente di aggiungere più chiavi come metodo 2FA. Registra una principale e una di backup dal primo giorno.


Modelli YubiKey compatibili per questo flusso

Modello Connettore SSH (FIDO2) 2FA GitHub
YubiKey 5 NFC USB-A + NFC ✓ ✓
YubiKey 5C NFC USB-C + NFC ✓ ✓
Security Key NFC USB-A + NFC ✓ ✓
Security Key C NFC USB-C + NFC ✓ ✓

Tutti e quattro i modelli utilizzano il protocollo FIDO2 per generare chiavi -sk, quindi il flusso di SSH e 2FA su GitHub funziona allo stesso modo su tutti. La differenza sta nella porta fisica del tuo computer.


Come organizzare la tua chiave principale e il tuo backup

Se perdi la tua unica YubiKey, perdi accesso a SSH, ai tuoi commit firmati e al login di GitHub. Registra sempre una seconda chiave e conservala in un posto diverso da quella principale.

Consigliato Portafoglio tipo carta per YubiKey 2 slot

Portafoglio Carta 2 Slot

Porta la tua chiave principale e il tuo backup insieme, in formato carta di credito. Prodotto in Spagna (UE).

Compatibile con: YubiKey 5 NFC · 5C NFC · Security Key NFC · Security Key C NFC
Visualizza su Amazon
Portachiavi con lanyard per YubiKey

Portachiavi con Lanyard

Per la chiave che usi ogni giorno. NFC funziona senza toglierla dalla custodia. Prodotto in Spagna (UE).

Compatibile con: YubiKey 5 NFC · 5C NFC · Security Key NFC · Security Key C NFC
Visualizza su Amazon

Domande frequenti

Mi servono due YubiKey sì o sì?

Non è obbligatorio, ma consigliato. Senza una chiave di backup registrata, un guasto o una perdita ti lascia senza accesso a SSH e al tuo account GitHub finché non usi un altro metodo di recupero.

Funziona allo stesso modo su Windows, macOS e Linux?

Sì, a condizione che tu abbia OpenSSH 8.2 o superiore. macOS e le distribuzioni Linux recenti lo includono per impostazione predefinita. Su Windows, usa il client OpenSSH del sistema o WSL.

Posso usare la stessa YubiKey per SSH e per il mio Gmail?

Sì. Una stessa YubiKey supporta più credenziali FIDO2, una per ogni servizio dove la registri — SSH, GitHub, Gmail e altri account compatibili con WebAuthn.

Cosa succede se perdo la YubiKey che ho usato per firmare i commit?

I commit già firmati rimangono validi. Per continuare a firmare, registra la chiave di backup come nuova Signing Key su GitHub e aggiorna user.signingkey nella tua configurazione di Git.

Verdetto

Vale la pena migrare SSH e GitHub a YubiKey?

Se lavori con accesso SSH a server di produzione o mantieni repository con collaboratori, sì. La chiave privata smette di essere un file copiabile e dipende da hardware fisico.

Il vero costo non è della chiave, ma di non avere una di backup organizzata. Risolvilo dal primo giorno.

In qualità di Affiliato Amazon, guadagno dagli acquisti idonei.

Torna al blog