Hub documentation

Menandatangani commit dengan GPG

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Menandatangani commit dengan GPG

git memiliki lapisan autentikasi untuk mengontrol siapa yang dapat mendorong commit ke repositori, tetapi tidak mengautentikasi penulis commit yang sebenarnya.

Dengan kata lain, Anda dapat mengomitm perubahan sebagai Elon Musk <elon@tesla.com>, mendorongnya ke host git pilihan Anda (misalnya github.com), dan commit Anda akan tertaut ke profil GitHub Elon. (Cobalah! Tapi jangan salahkan kami jika Elon marah kepada Anda karena menyamar sebagai dirinya.)

Alasan kami mengimplementasikan penandatanganan GPG adalah:

  • Untuk menyediakan keamanan yang lebih granular, terutama seiring dengan semakin banyaknya pengguna Enterprise yang mengandalkan Hub.
  • Untuk menyediakan benchmark ML yang didukung oleh sumber yang aman secara kriptografis.

Lihat Bagaimana (dan mengapa) menandatangani commit git oleh Ale Segala untuk konteks lebih lanjut.

Anda dapat membuktikan bahwa sebuah commit dibuat oleh Anda menggunakan GNU Privacy Guard (GPG) dan server kunci. GPG adalah alat kriptografis yang digunakan untuk memverifikasi keaslian asal pesan. Kami akan menjelaskan cara mengatur ini di Hugging Face di bawah.

Buku Pro Git, seperti biasa, merupakan sumber yang baik tentang penandatanganan commit: Pro Git: Signing your work.

Mengatur verifikasi commit bertanda

Anda perlu menginstal GPG di sistem Anda untuk menjalankan perintah-perintah berikut.

Termasuk secara bawaan di sebagian besar distribusi Linux. Di Windows, termasuk dalam Git Bash (yang disertakan bersama git untuk Windows).

Anda dapat menandatangani commit Anda secara lokal menggunakan GPG. Lalu, konfigurasikan profil Anda untuk menandai commit ini sebagai verified di Hub, sehingga orang lain dapat yakin bahwa commit tersebut berasal dari sumber yang tepercaya.

Untuk penjelasan yang lebih mendalam tentang bagaimana git dan GPG berinteraksi, silakan kunjungi dokumentasi git tentang topik ini

Commit dapat memiliki status penandatanganan berikut:

StatusPenjelasan
TerverifikasiCommit ditandatangani dan tanda tangannya telah diverifikasi
Belum terverifikasiCommit ditandatangani tetapi tanda tangan tidak dapat diverifikasi
Tidak ada status penandatangananCommit tidak ditandatangani

Agar sebuah commit ditandai sebagai verified, Anda perlu mengunggah kunci publik yang digunakan untuk menandatanganinya ke akun Hugging Face Anda.

Gunakan perintah gpg --list-secret-keys untuk menampilkan kunci GPG yang memiliki kunci publik dan kunci privat. Kunci privat diperlukan untuk menandatangani commit atau tag.

Jika Anda tidak memiliki pasangan kunci GPG atau tidak ingin menggunakan kunci yang ada untuk menandatangani commit Anda, buka Menghasilkan kunci GPG baru.

Jika tidak, langsung ke Menambahkan kunci GPG ke akun Anda.

Membuat kunci GPG baru

Untuk menghasilkan kunci GPG, jalankan berikut:

gpg --gen-key

GPG kemudian akan memandu Anda melalui proses pembuatan pasangan kunci GPG.

Pastikan Anda menentukan alamat email untuk kunci ini, dan bahwa alamat email tersebut sesuai dengan yang Anda tentukan di akun Hugging Face Anda.

Menambahkan kunci GPG ke akun Anda

  1. Pertama, pilih atau buat kunci GPG di komputer Anda. Pastikan alamat email dari kunci tersebut sesuai dengan alamat email di akun Hugging Face Anda dan bahwa email akun Anda telah diverifikasi.

  2. Ekspor bagian publik dari kunci yang dipilih:

gpg --armor --export <YOUR KEY ID>
  1. Lalu kunjungi halaman pengaturan profil Anda dan klik Tambahkan Kunci GPG.

Salin & tempel keluaran perintah gpg --export di area teks dan klik Add Key.

  1. Selamat! 🎉 Anda baru saja menambahkan kunci GPG ke akun Anda!

Konfigurasikan git untuk menandatangani commit Anda dengan GPG

Langkah terakhir adalah mengonfigurasi git untuk menandatangani commit Anda:

git config user.signingkey <Your GPG Key ID>
git config user.email <Your email on hf.co>

Lalu tambahkan flag -S ke perintah git commit Anda untuk menandatangani commit Anda!

git commit -S -m "My first signed commit"

Setelah di-push ke Hub, Anda seharusnya melihat commit dengan lencana “Verified”.

Untuk menandatangani semua commit secara default di repositori lokal mana pun di komputer Anda, Anda dapat menjalankan git config —global commit.gpgsign true.

Update on GitHub