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:
| Prompt | Jawaban |
|---|---|
Enter file in which to save the key | Tekan Enter untuk pakai lokasi default (~/.ssh/id_ed25519), atau ketik nama custom kalau nanti mau pakai beberapa key sekaligus |
Enter passphrase | Opsional, 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 Settings → SSH and GPG keys → New 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