Hub documentation
Signature des commits avec GPG
Signature des commits avec GPG
git dispose d'une couche d'authentification pour contrôler qui peut pousser des commits vers un dépôt, mais il n'authentifie pas les auteurs réels des commits.
Autrement dit, vous pouvez engager des modifications en tant que Elon Musk <elon@tesla.com>, les pousser vers votre hôte git préféré (par exemple github.com), et votre engagement sera lié au profil GitHub d’Elon. (Essayez ! Mais ne nous en voulez pas si Elon est fâché contre vous pour l’avoir usurpé.)
Les raisons pour lesquelles nous avons implémenté la signature GPG sont les suivantes :
- Pour offrir une sécurité plus fine, en particulier à mesure que de plus en plus d'utilisateurs Enterprise s'appuient sur le Hub.
- Fournir des benchmarks ML adossés à une source cryptographiquement sécurisée.
Voir Comment (et pourquoi) signer des commits git d’Ale Segala pour plus de contexte.
Vous pouvez prouver qu’un commit a été créé par vous-même à l’aide de GNU Privacy Guard (GPG) et d’un serveur de clés. GPG est un outil cryptographique utilisé pour vérifier l’authenticité de l’origine d’un message. Nous vous expliquons ci-dessous comment configurer cela sur Hugging Face.
Le livre Pro Git est, comme d'habitude, une bonne ressource sur la signature des commits : Pro Git: Signing your work.
Mise en place de la vérification des commits signés
Vous devrez installer GPG sur votre système afin d'exécuter les commandes suivantes.
Il est inclus par défaut dans la plupart des distributions Linux. Sous Windows, il est inclus dans Git Bash (qui est fourni avec
gitpour Windows).
Vous pouvez signer vos commits localement à l'aide de GPG. Configurez ensuite votre profil pour marquer ces commits comme verified sur le Hub, afin que les autres utilisateurs puissent être certains qu'ils proviennent d'une source de confiance.
Pour une explication plus approfondie de l'interaction entre git et GPG, veuillez consulter la documentation git sur le sujet
Les commits peuvent avoir les statuts de signature suivants :
| Statut | Explication |
|---|---|
| Vérifié | Le commit est signé et la signature est vérifiée |
| Non vérifié | Le commit est signé, mais la signature n'a pas pu être vérifiée |
| Aucun statut de signature | Le commit n'est pas signé |
Pour qu'un commit soit marqué comme verified, vous devez téléverser la clé publique utilisée pour le signer sur votre compte Hugging Face.
Utilisez la commande gpg --list-secret-keys pour lister les clés GPG pour lesquelles vous disposez à la fois d’une clé publique et d’une clé privée.
Une clé privée est requise pour signer des commits ou des tags.
Si vous ne disposez pas d’une paire de clés GPG ou si vous ne souhaitez pas utiliser les clés existantes pour signer vos commits, rendez-vous à Générer une nouvelle clé GPG.
Sinon, passez directement à Ajouter une clé GPG à votre compte.
Générer une nouvelle clé GPG
Pour générer une clé GPG, exécutez la commande suivante :
gpg --gen-key
GPG vous guidera ensuite dans le processus de création d'une paire de clés GPG.
Assurez-vous de spécifier une adresse e-mail pour cette clé et que cette adresse correspond à celle que vous avez indiquée dans votre compte Hugging Face.
Ajouter une clé GPG à votre compte
Sélectionnez ou générez d'abord une clé GPG sur votre ordinateur. Assurez-vous que l'adresse e-mail de la clé correspond à celle de votre compte Hugging Face et que l'e-mail de votre compte est vérifié.
Exporter la partie publique de la clé sélectionnée :
gpg --armor --export <YOUR KEY ID>- Puis rendez-vous sur la page de paramètres de votre profil et cliquez sur Ajouter une clé GPG.
Copiez et collez la sortie de la commande gpg --export dans la zone de texte, puis cliquez sur Ajouter la clé.
- Félicitations ! 🎉 Vous venez d’ajouter une clé GPG à votre compte !
Configurer git pour signer vos commits avec GPG
La dernière étape consiste à configurer git pour signer vos commits :
git config user.signingkey <Your GPG Key ID> git config user.email <Your email on hf.co>
Ajoutez ensuite le drapeau -S à vos commandes git commit pour signer vos commits !
git commit -S -m "My first signed commit"Une fois poussé sur le Hub, vous devriez voir le commit avec un badge « Vérifié ».
Update on GitHubPour signer tous les commits par défaut dans tout dépôt local sur votre ordinateur, vous pouvez exécuter
git config —global commit.gpgsign true.