Perché dovrei firmare il mio git commit con una chiave GPG quando già uso una chiave SSH per autenticarmi quando spingo?

30

In poche parole, mi chiedo perché è necessario firmare i propri commit con una chiave GPG quando si contribuisce a GitHub quando è già necessario fornire una chiave pubblica SSH?

    
posta Mahmoud Tantawy 17.04.2016 - 00:36
fonte

1 risposta

31

Quando si autentica su Github con la chiave SSH, tale autenticazione non diventa parte del repository in alcun modo significativo o duraturo. Fa in modo che Github ti conceda l'accesso per il momento, ma non prova nulla a nessuno che non sia Github.

Quando firmi GPG con un tag git, quel tag è parte del repository e può essere trasferito ad altre copie del repository. Pertanto, altre persone che clonano il tuo repository possono verificare il tag firmato, supponendo che abbiano accesso alla tua chiave pubblica e motivo per fidarsi di esso.

Anche se non è necessario taggare e firmare GPG ogni singolo commit, è opportuno fornire tag firmati GPG almeno su ogni commit che corrisponde a una versione rilasciata del codice. Potresti desiderare di fare di più, ma questo è il minimo del comportamento responsabile, in quanto fornisce una ragionevole garanzia che:

  • Il commit in questione corrisponde effettivamente al rilascio in questione.

  • Il commit in questione (e nella misura in cui ci si fida degli hash SHA1 usati nella cronologia del commit git, tutti i suoi predecessori) proveniva dal firmatario (e, se applicabile, dal team del firmatario).

  • Il commit in questione non è stato alterato dopo che il firmatario lo ha taggato.

Nota che ho detto "ragionevole sicurezza", non "perfetta certezza" ... ci sono altre cose che possono andare storte con l'integrità del software. Tuttavia, fornire tag firmati almeno per le versioni ufficiali è un enorme passo nella giusta direzione.

    
risposta data 17.04.2016 - 08:02
fonte

Leggi altre domande sui tag