Lewati ke konten utama

Cara Menggunakan SSH Key untuk Git di GitHub

Panduan lengkap membuat dan mengonfigurasi SSH key untuk autentikasi Git ke GitHub, mulai dari generate key hingga push pertama tanpa perlu masukkan password.

GitHub sudah tidak menerima autentikasi Git lewat username & password biasa (sejak 2021) kamu wajib pakai personal access token atau SSH key. Dari keduanya, SSH key lebih praktis untuk pemakaian harian: sekali disetel, kamu bisa push/pull tanpa diminta login ulang setiap saat.

Panduan ini fokus ke GitHub, tapi langkahnya sama persis untuk GitLab atau Git server lain yang mendukung SSH tinggal ganti host-nya.

Prasyarat

  • Git sudah terpasang (cek dengan git --version)
  • Akun GitHub aktif
  • Akses terminal (Linux/macOS pakai bawaan, Windows pakai Git Bash)

1. Pastikan SSH Client Terpasang

Di Ubuntu/Debian, git dan openssh-client biasanya sudah ada, tapi pastikan dulu:

sudo apt install git openssh-client

Verifikasi keduanya sudah terpasang:

git --version
ssh -V

2. Buat SSH Key Baru

Gunakan tipe ED25519 lebih cepat dan lebih aman dari RSA, dan ini yang direkomendasikan GitHub sejak beberapa tahun terakhir.

ssh-keygen -t ed25519 -C "email-kamu@contoh.com"

Kamu akan disodori beberapa pertanyaan:

PromptJawaban
Enter file in which to save the keyTekan Enter untuk pakai lokasi default (~/.ssh/id_ed25519), atau ketik nama custom kalau nanti mau pakai beberapa key sekaligus
Enter passphraseOpsional, tapi disarankan - passphrase jadi lapisan keamanan tambahan kalau file key-mu bocor

Kalau perangkatmu sangat lawas dan belum dukung ED25519 (jarang terjadi), fallback ke RSA 4096-bit:

ssh-keygen -t rsa -b 4096 -C "email-kamu@contoh.com"

3. Tambahkan Key ke ssh-agent

ssh-agent menyimpan key di memori supaya kamu tidak diminta passphrase berulang kali dalam satu sesi.

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

4. Daftarkan Public Key ke GitHub

Tampilkan isi public key, lalu salin semua teksnya (diawali ssh-ed25519 ...):

cat ~/.ssh/id_ed25519.pub

Di GitHub: buka SettingsSSH and GPG keysNew SSH key, tempel isinya, beri nama yang jelas (misal “Laptop Kerja”), lalu simpan.

5. Verifikasi Koneksi

ssh -T git@github.com

Kalau berhasil, kamu akan lihat pesan seperti:

Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.

Kalau muncul Permission denied (publickey), cek ulang apakah public key di langkah 4 sudah ke-paste dengan benar dan key-nya sudah ditambahkan ke ssh-agent (langkah 3).

6. Push Repo Pertama Kali

cd /path/ke/proyekmu
git init
git add --all
git commit -m "Initial commit"
git branch -M main
git remote add origin git@github.com:username/nama-repo.git
git push -u origin main

Perhatikan URL remote-nya pakai format SSH (git@github.com:...), bukan https://github.com/... — ini yang menentukan Git pakai SSH key, bukan token/password.

Konfigurasi Multi-Akun (Opsional)

Kalau kamu punya lebih dari satu akun GitHub (misal akun kerja & pribadi) atau juga pakai GitLab, atur ~/.ssh/config supaya SSH otomatis pilih key yang tepat per host:

Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519

Host gitlab.com
    HostName gitlab.com
    User git
    IdentityFile ~/.ssh/id_ed25519_gitlab

Penutup

Ganti passphrase key kapan saja tanpa perlu generate ulang:

ssh-keygen -p -f ~/.ssh/id_ed25519

Referensi: Generating a new SSH key — GitHub Docs