DEV Community

Nandan Ramdani
Nandan Ramdani

Posted on • Edited on

Cara Membuat Verified Commit di GitHub Menggunakan SSH Key ED25519

Saat melihat riwayat commit di GitHub, mungkin kamu pernah menemukan badge hijau bertuliskan Verified di samping sebuah commit.

Badge tersebut menandakan bahwa commit telah ditandatangani secara kriptografi dan GitHub berhasil memverifikasi identitas pembuat commit. Dengan kata lain, GitHub dapat memastikan bahwa commit benar-benar berasal dari pemilik akun yang bersangkutan dan bukan hasil manipulasi pihak lain.

Dulu, fitur ini umumnya menggunakan GPG Key yang proses konfigurasinya cukup rumit. Namun saat ini GitHub sudah mendukung SSH Key untuk menandatangani commit, sehingga proses setup menjadi jauh lebih sederhana.

Pada artikel ini kita akan menggunakan SSH Key ED25519 untuk membuat Verified Commit di GitHub.


Apa Itu Verified Commit?

Verified Commit adalah commit yang ditandatangani secara digital menggunakan kunci kriptografi.

Ketika commit di-push ke GitHub, platform akan memverifikasi tanda tangan tersebut dan menampilkan badge:

Verified
Enter fullscreen mode Exit fullscreen mode

Keuntungan menggunakan Verified Commit:

  • Membuktikan commit berasal dari akun kamu
  • Mencegah pemalsuan identitas commit
  • Meningkatkan keamanan repository
  • Menambah kredibilitas kontribusi open source
  • Menjadi standar di banyak tim dan perusahaan

Mengapa Menggunakan SSH Key?

GitHub mendukung dua metode utama untuk menandatangani commit:

  1. GPG Key
  2. SSH Key

SSH Key memiliki beberapa kelebihan:

  • Setup lebih sederhana
  • Tidak perlu mengelola GPG Key
  • Sudah digunakan untuk autentikasi GitHub
  • Cocok untuk workflow modern

Karena alasan tersebut, SSH Key menjadi pilihan yang direkomendasikan untuk penggunaan baru.


Prasyarat

Sebelum memulai, pastikan:

  • Sudah memiliki akun GitHub
  • Git sudah terinstall
  • OpenSSH tersedia di sistem
  • Git versi 2.34 atau lebih baru

Cek versi Git:

git --version
Enter fullscreen mode Exit fullscreen mode

Contoh output:

git version 2.46.0
Enter fullscreen mode Exit fullscreen mode

Jika versi Git terlalu lama, lakukan update terlebih dahulu.


Langkah 1 — Membuat SSH Key ED25519

Pertama, cek apakah SSH Key sudah tersedia:

ls ~/.ssh/id_ed25519.pub
Enter fullscreen mode Exit fullscreen mode

Jika file tidak ditemukan, buat SSH Key baru:

ssh-keygen -t ed25519 -C "john@example.com"
Enter fullscreen mode Exit fullscreen mode

Tekan Enter untuk menggunakan lokasi default:

~/.ssh/id_ed25519
Enter fullscreen mode Exit fullscreen mode

Setelah selesai, akan terbentuk dua file:

~/.ssh/id_ed25519
Enter fullscreen mode Exit fullscreen mode

Private Key

~/.ssh/id_ed25519.pub
Enter fullscreen mode Exit fullscreen mode

Public Key

Jangan pernah membagikan file private key kepada siapa pun.


Langkah 2 — Menambahkan SSH Key ke GitHub

Lihat isi public key:

cat ~/.ssh/id_ed25519.pub
Enter fullscreen mode Exit fullscreen mode

Salin seluruh hasil output.

Kemudian buka GitHub:

Settings → SSH and GPG Keys
Enter fullscreen mode Exit fullscreen mode

Klik:

New SSH Key
Enter fullscreen mode Exit fullscreen mode

Isi:

  • Title: Laptop Kerja
  • Key Type: Authentication Key
  • Key: Tempelkan public key

Lalu klik Add SSH Key.


Langkah 3 — Menambahkan SSH Key sebagai Signing Key

Masih pada halaman:

Settings → SSH and GPG Keys
Enter fullscreen mode Exit fullscreen mode

Klik:

New SSH Key
Enter fullscreen mode Exit fullscreen mode

Namun kali ini pilih:

Signing Key
Enter fullscreen mode Exit fullscreen mode

Gunakan public key yang sama:

cat ~/.ssh/id_ed25519.pub
Enter fullscreen mode Exit fullscreen mode

Tempelkan dan simpan.

Langkah ini penting karena banyak developer hanya menambahkan Authentication Key dan lupa menambahkan Signing Key.

Akibatnya commit tidak mendapatkan status Verified.


Langkah 4 — Konfigurasi Git

Aktifkan SSH Signing:

git config --global gpg.format ssh
Enter fullscreen mode Exit fullscreen mode

Tentukan SSH Key yang akan digunakan:

git config --global user.signingkey ~/.ssh/id_ed25519.pub
Enter fullscreen mode Exit fullscreen mode

Aktifkan penandatanganan otomatis:

git config --global commit.gpgsign true
Enter fullscreen mode Exit fullscreen mode

Verifikasi konfigurasi:

git config --global --list
Enter fullscreen mode Exit fullscreen mode

Output akan berisi:

gpg.format=ssh
commit.gpgsign=true
Enter fullscreen mode Exit fullscreen mode

Langkah 5 — Membuat Commit Pertama

Buat repository baru:

mkdir hello-world
cd hello-world
git init
Enter fullscreen mode Exit fullscreen mode

Tambahkan file:

echo "# Hello World" > README.md
Enter fullscreen mode Exit fullscreen mode

Commit perubahan:

git add .
git commit -m "Initial commit"
Enter fullscreen mode Exit fullscreen mode

Karena signing sudah aktif, Git akan otomatis menandatangani commit menggunakan SSH Key.


Langkah 6 — Push ke GitHub

Tambahkan remote repository:

git remote add origin git@github.com:johndoe/hello-world.git
Enter fullscreen mode Exit fullscreen mode

Push commit:

git push -u origin main
Enter fullscreen mode Exit fullscreen mode

Setelah proses selesai, buka halaman repository di GitHub.

Jika konfigurasi berhasil, akan muncul badge hijau:

✓ Verified
Enter fullscreen mode Exit fullscreen mode

di samping commit.


Mengatasi Commit yang Tidak Verified

Jika commit masih belum Verified, periksa beberapa hal berikut:

SSH Key Belum Ditambahkan Sebagai Signing Key

Pastikan public key ditambahkan pada bagian:

Settings → SSH and GPG Keys
Enter fullscreen mode Exit fullscreen mode

dengan tipe:

Signing Key
Enter fullscreen mode Exit fullscreen mode

Email Commit Berbeda dengan Akun GitHub

Cek email Git:

git config user.email
Enter fullscreen mode Exit fullscreen mode

Pastikan email tersebut terdaftar pada akun GitHub.

Git Terlalu Lama

Pastikan menggunakan Git versi 2.34 atau lebih baru.


Best Practice

Gunakan ED25519

Untuk setup baru, gunakan:

ssh-keygen -t ed25519
Enter fullscreen mode Exit fullscreen mode

karena lebih cepat dan aman dibanding RSA.

Gunakan Passphrase

Tambahkan passphrase saat membuat SSH Key untuk perlindungan tambahan.

Simpan Private Key dengan Aman

File berikut tidak boleh dibagikan:

~/.ssh/id_ed25519
Enter fullscreen mode Exit fullscreen mode

Jika private key bocor, segera buat key baru dan hapus key lama dari GitHub.


Penutup

Verified Commit merupakan cara sederhana untuk meningkatkan keamanan dan kredibilitas repository GitHub. Dengan dukungan SSH Signing, proses setup menjadi jauh lebih mudah dibanding menggunakan GPG Key.

Jika kamu sudah menggunakan SSH Key untuk mengakses GitHub, hanya diperlukan beberapa langkah tambahan untuk mendapatkan badge Verified pada setiap commit yang dibuat.

Selain terlihat lebih profesional, Verified Commit juga membantu memastikan bahwa seluruh riwayat commit benar-benar berasal dari kontributor yang sah.

Top comments (0)