Quando lavori su GitHub, non stai solo spostando file; stai comunicando con un server remoto e certificando la paternità del tuo lavoro. Ecco a cosa servono nello specifico:
Chiave SSH (Secure Shell)
A cosa serve: Identificazione e Trasporto sicuro.
La chiave SSH serve a dimostrare a GitHub che tu hai il permesso di accedere a un repository, scaricare il codice o caricarne di nuovo senza dover digitare username e password ogni volta.
- Il meccanismo: Funziona con una coppia di chiavi: una privata (che resta sul tuo PC e non devi dare a nessuno) e una pubblica (che carichi su GitHub).
- Vantaggio principale: Sostituisce l’uso del Token (PAT) per le operazioni di
git pushepull. È estremamente difficile da forzare rispetto a una password tradizionale.
Chiave GPG (GNU Privacy Guard)
A cosa serve: Integrità e Autenticità (Firma dei Commit).
Se SSH dice “chi può entrare”, GPG dice “chi ha scritto davvero questo pezzo di codice”. Senza GPG, chiunque potrebbe configurare il proprio terminale con la tua email e far finta di aver scritto un commit a tuo nome.
- Il “Bollino Verde”: Quando firmi un commit con la tua chiave GPG, su GitHub apparirà accanto al tuo nome l’etichetta verde “Verified”.
- Protezione: Garantisce che il codice non sia stato alterato da quando lo hai inviato e conferma che sei stato proprio tu a scriverlo, prevenendo il furto d’identità digitale all’interno del progetto.
Tabella Comparativa
| Caratteristica | Chiave SSH | Chiave GPG |
| Scopo principale | Accesso e Autenticazione | Integrità e Firma del codice |
| Cosa fa | Ti permette di fare push e pull | Aggiunge il badge “Verified” ai commit |
| Sicurezza | Protegge la connessione tra PC e Server | Protegge l’identità dell’autore del codice |
| Frequenza d’uso | Indispensabile per comodità | Fortemente raccomandata per progetti seri |
In sintesi
- Usa SSH per smettere di inserire password e rendere sicura la connessione.
- Usa GPG per mettere la tua firma digitale “anti-contraffazione” su ogni riga di codice che scrivi.
Vuoi che ti mostri i comandi rapidi per generarle e configurarle sul tuo sistema operativo?
Perché queste chiavi sono fondamentali per un developer:
- Chiave SSH (Secure Shell): Serve per l’autenticazione. Invece di inserire username e password (o token) ogni volta che fai un
pusho unpull, GitHub usa questa chiave per riconoscerti istantaneamente. È come un badge digitale che dice: “Sono proprio io”. - Chiave GPG (GNU Privacy Guard): Serve per la verifica. Mentre SSH dice chi sei, GPG firma i tuoi commit per garantire che il codice non sia stato alterato da terzi. Su GitHub, i commit firmati mostrano il distintivo verde “Verified”, aumentando la fiducia nel tuo lavoro.
Creare la chiave SSH
Su Linux / Su Windows (PowerShell o Git Bash)
Il comando è lo stesso per entrambi gli ambienti. GitHub consiglia l’algoritmo Ed25519, più sicuro e performante.
- Apri il terminale e digita:Bash
ssh-keygen -t ed25519 -C "tua_email@esempio.com" - Premi Invio per salvare nella cartella di default.
- Inserisci una passphrase (consigliato per extra sicurezza).
Aggiungere la chiave a GitHub:
- Copia il contenuto della chiave pubblica:
- Linux:
cat ~/.ssh/id_ed25519.pub - Windows:
Get-Content C:\Users\TUO_UTENTE\.ssh\id_ed25519.pub
- Linux:
- Vai su GitHub -> Settings -> SSH and GPG keys -> New SSH Key e incolla il contenuto.
Creare la chiave GPG
Su Linux
- Genera la chiave:Bash
gpg --full-generate-key - Scegli l’opzione (1) RSA and RSA (o segui i default).
- Imposta la dimensione a 4096 bit.
- Inserisci i tuoi dati (devono corrispondere all’email di GitHub).
Su Windows
- Scarica e installa Gpg4win.
- Apri il prompt dei comandi o PowerShell e usa lo stesso comando:Bash
gpg --full-generate-key
Aggiungere la chiave a GitHub:
- Trova l’ID della tua chiave:Bash
gpg --list-secret-keys --keyid-format=LONG(L’ID è la stringa doporsa4096/nella rigasec). - Esporta la chiave pubblica:Bash
gpg --armor --export TUO_ID_CHIAVE - Copia tutto (incluso
-----BEGIN PGP PUBLIC KEY BLOCK-----) e incollalo in GitHub sotto New GPG Key.
Configurazione finale (Git)
Ora devi dire a Git di usare queste chiavi per i tuoi commit futuri:
Bash
# Imposta la firma automatica git config --global user.signingkey TUO_ID_CHIAVE git config --global commit.gpgsign true
Se sei su Windows e preferisci un’interfaccia grafica per gestire le chiavi GPG, usa Kleopatra (incluso in Gpg4win), è molto intuitivo per importare ed esportare certificati.