Beberapa tahun lalu, saat pertama kali saya belajar Git di Linux, saya selalu pakai metode HTTPS untuk push kode ke GitHub. Awalnya saya pikir itu normal, tapi lama-lama rasanya melelahkan. Setiap kali mau push, harus masukin username dan password. Kalau sehari push berkali-kali, rasanya buang waktu.
Sampai akhirnya saya tahu soal SSH Key. Setelah saya pelajari dan mulai menggunakannya, pengalaman kerja saya jauh lebih nyaman. Sekali setup, saya tidak perlu repot login setiap kali melakukan push atau pull. Proses ini juga lebih aman karena menggunakan enkripsi.
Di artikel ini, saya akan membagikan panduan lengkap mulai dari pengertian, instalasi, pembuatan SSH Key, sampai testing koneksi. Semua akan saya jelaskan dengan bahasa yang santai supaya mudah diikuti.
π Apa itu SSH Key dan Kenapa Penting? #
SSH (Secure Shell) adalah protokol jaringan yang digunakan untuk mengakses dan mengontrol server secara aman. SSH Key adalah pasangan kunci publik dan kunci privat yang dipakai untuk autentikasi tanpa password.
Jika kamu menggunakan SSH Key untuk GitHub, setiap kali melakukan operasi seperti git push atau git pull, kamu tidak perlu mengetik username dan password. Cukup sekali setup, koneksi akan berjalan otomatis.
Keuntungan menggunakan SSH Key:
- Aman karena memakai enkripsi end-to-end.
- Praktis, menghemat waktu kerja.
- Sangat cocok untuk workflow di Linux, Windows, atau MacOS.
- Bisa mengatur banyak akun GitHub di satu perangkat dengan konfigurasi yang tepat.
π οΈ Step 1: Cek dan Install OpenSSH #
Cek di Linux/MacOS
ssh -V
Kalau muncul versi OpenSSH, artinya sudah terpasang. Kalau belum, install:
# Debian/Ubuntu
sudo apt install openssh-client
# Fedora
sudo dnf install openssh-clients
Cek di Windows
ssh -V
Jika belum terpasang, aktifkan dari Optional Features di Settings β Apps β Optional features β Add a feature β “OpenSSH Client”.
π Step 2: Buat SSH Key Baru #
ssh-keygen -t ed25519 -C "email_github_kamu"
Jika ed25519 tidak didukung:
ssh-keygen -t rsa -b 4096 -C "email_github_kamu"
Tekan Enter untuk lokasi default (~/.ssh/id_ed25519). Isi passphrase jika mau keamanan ekstra, atau tekan Enter untuk tanpa password.
π Step 3: Aktifkan SSH Agent dan Tambahkan Key #
Linux/MacOS:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Windows:
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519
π Step 4: Salin Public Key #
cat ~/.ssh/id_ed25519.pub
Salin semua isinya.
π Step 5: Tambahkan SSH Key ke GitHub #
- Login ke GitHub.
- Settings β SSH and GPG keys.
- New SSH key.
- Isi Title, paste key, klik Add SSH key.
β Step 6: Tes Koneksi SSH ke GitHub #
ssh -T git@github.com
Jika sukses:
Hi username! You've successfully authenticated...
π¦ Step 7: Gunakan SSH Saat Clone Repo #
HTTPS:
git clone https://github.com/username/repo.git
SSH:
git clone git@github.com:username/repo.git
βοΈ Step 8: Mengatur Banyak Akun GitHub #
Buat file ~/.ssh/config:
# Akun pribadi
Host github.com-pribadi
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_pribadi
# Akun kerja
Host github.com-kerja
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_kerja
Clone dengan host sesuai:
git clone git@github.com-pribadi:username/repo.git
π Troubleshooting Error SSH GitHub #
β Permission denied (publickey)
#
-
Tambahkan key ke agent:
ssh-add ~/.ssh/id_ed25519 -
Pastikan key sudah ada di GitHub.
-
Atur permission:
chmod 600 ~/.ssh/id_ed25519 chmod 644 ~/.ssh/id_ed25519.pub
β οΈ Host key verification failed
#
-
Jalankan:
ssh git@github.comKetik
yessaat diminta.
π Could not resolve hostname github.com
#
- Periksa koneksi.
- Ganti DNS ke Cloudflare atau Google.
ποΈ Salah SSH Key untuk Akun Tertentu #
- Gunakan
~/.ssh/configuntuk membedakan key.
π§Ή Hapus Key Lama #
ssh-add -d ~/.ssh/id_ed25519_lama
ssh-add -D
β FAQ Seputar SSH GitHub #
1. Apakah saya tetap bisa pakai HTTPS setelah mengatur SSH? Bisa, SSH dan HTTPS bisa dipakai bergantian.
2. Apakah SSH Key bisa digunakan di lebih dari satu perangkat? Bisa, tapi lebih aman membuat key terpisah.
3. Apakah SSH Key kadaluarsa? Tidak, tapi disarankan ganti berkala.
4. Apakah perlu passphrase? Disarankan untuk keamanan tambahan.
5. Bagaimana menghapus SSH Key dari GitHub? Settings β SSH and GPG keys β Delete.
6. Apakah setup SSH berbeda di Linux, Windows, dan MacOS? Intinya sama, bedanya di perintah aktivasi SSH Agent.