Cara Setup SSH Key di cPanel untuk Clone Repository GitHub Tanpa Password
Jujur aja, awalnya gw kira deploy Laravel ke shared hosting itu tinggal upload file lalu selesai. Ternyata begitu mulai pakai GitHub, SSH, Node.js, subdomain, dan workflow deployment yang proper, baru terasa kalau setup environment itu lumayan penting.
Dulu gw sering upload ZIP manual lewat File Manager cPanel. Untuk project kecil sebenarnya masih oke. Tapi begitu project mulai banyak, update makin sering, dan repository mulai dipisah-pisah, cara itu lama-lama bikin ribet.
Akhirnya gw mulai pindah ke workflow:
- GitHub
- SSH key
- clone repository langsung dari server
- tinggal
git pull
Dan honestly, setelah terbiasa pakai workflow ini, rasanya males balik lagi upload manual 😄
Di artikel ini gw bakal share cara setup SSH key di cPanel supaya hosting bisa connect langsung ke GitHub tanpa harus login pakai password terus menerus.
Kenapa Pakai SSH Key?
Sebelum masuk setup, gw jelasin dulu kenapa gw lebih suka pakai SSH dibanding HTTPS.
Kalau clone repository pakai HTTPS:
https://github.com/username/repository.git
biasanya GitHub bakal minta:
- username
- password/token
- login ulang
Dan buat deployment itu agak ngeselin.
Sedangkan kalau pakai SSH:
git@github.com:username/repository.git
server bisa langsung authenticate otomatis lewat SSH key.
Jadi nanti workflow deploy jadi jauh lebih simpel:
- edit di local
- push ke GitHub
- login SSH hosting
git pull- selesai
Buat gw pribadi, ini jauh lebih nyaman apalagi kalau project sudah mulai banyak.
Apa Itu SSH Key?
Secara gampangnya:
- SSH key itu seperti identitas digital
- ada private key
- ada public key
Public key:
- aman dibagikan
- dimasukkan ke GitHub
Private key:
- HARUS disimpan aman
- jangan dibagikan
- dipakai server untuk login/authenticate
Konsepnya mirip:
- public key = gembok
- private key = kunci pembuka
Kalau GitHub cocok dengan key yang kita punya, akses langsung diberikan tanpa perlu password lagi.
Struktur Setup yang Gw Pakai
Di hosting gw, biasanya struktur folder gw seperti ini:
/home/username/repositories/project
Semua source code ada di folder:
repositories
Sedangkan subdomain/public folder hanya untuk file public Laravel.
Jadi source project tetap aman di luar public web root.
1. Generate SSH Key di Hosting
Masuk dulu ke terminal cPanel atau SSH hosting.
Lalu generate key:
ssh-keygen -t rsa -b 4096 -C "github-access"
Penjelasan:
rsa→ tipe key4096→ tingkat keamanan-C→ comment/label
Kenapa gw pakai RSA? Karena paling kompatibel untuk banyak shared hosting.
2. Tentukan Nama File Key
Waktu command dijalankan biasanya muncul:
Enter file in which to save the key
Isi misalnya:
~/.ssh/journal
Jadi nanti file yang dibuat:
~/.ssh/journal
~/.ssh/journal.pub
Penjelasan:
journal→ private keyjournal.pub→ public key
Gw sengaja kasih nama custom supaya lebih rapi.
Karena nanti biasanya gw punya beberapa key:
- project pribadi
- client
- production
- staging
Kalau semuanya pakai id_rsa bakal berantakan.
3. Passphrase
Nanti akan muncul:
Enter passphrase
Gw biasanya kosongin untuk deployment server supaya lebih praktis.
Kalau untuk laptop pribadi, kadang gw isi passphrase supaya lebih aman.
4. Buat SSH Config
Sekarang bikin file config SSH.
touch ~/.ssh/config
chmod 600 ~/.ssh/config
Lalu edit:
nano ~/.ssh/config
Isi:
Host github-journal
HostName github.com
User git
IdentityFile ~/.ssh/journal
Penjelasan SSH Config
Host
Host github-journal
Ini alias bebas.
Nanti kita bisa connect cukup pakai:
ssh -T github-journal
Menurut gw ini lebih enak dibanding harus nulis config panjang terus menerus.
HostName
HostName github.com
Domain tujuan SSH.
Karena kita connect ke GitHub, jadi pakai:
github.com
User
User git
Untuk GitHub selalu pakai:
git
IdentityFile
IdentityFile ~/.ssh/journal
Ini lokasi private key yang tadi dibuat.
5. Copy Public Key
Sekarang lihat isi public key:
cat ~/.ssh/journal.pub
Outputnya kira-kira begini:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQ...
Copy semuanya.
Jangan ada yang terpotong.
6. Tambahkan ke GitHub
Masuk ke:
- GitHub
- Settings
- SSH and GPG Keys
- New SSH Key
Paste public key tadi.
Save.
7. Test SSH Connection
Sekarang test koneksi:
ssh -T github-journal
Kalau berhasil biasanya muncul:
Hi username/repository! You've successfully authenticated
Kalau sudah muncul begitu berarti hosting sudah berhasil connect ke GitHub.
8. Clone Repository
Masuk ke folder project:
cd ~/repositories
mkdir journal
cd journal
Clone repository:
git clone git@github-journal:username/repository.git .
Titik (.) di akhir itu penting.
Artinya:
- clone langsung ke folder saat ini
- bukan bikin folder baru lagi
Kenapa Gw Suka Workflow Ini?
Karena deployment jadi jauh lebih nyaman.
Workflow gw sekarang biasanya:
- coding di local
- push ke GitHub
- SSH ke hosting
git pullcomposer installnpm run build- selesai
Dibanding:
- compress ZIP
- upload manual
- extract
- overwrite file
jujur jauh lebih enak.
Bonus: Multi Repository SSH Key
Kalau project makin banyak, setup seperti ini juga enak:
github-journal
github-client-a
github-client-b
github-production
Masing-masing bisa punya key sendiri.
Menurut gw ini bikin deployment lebih rapi dan lebih aman.
Penutup
Awalnya gw kira setup SSH deployment di shared hosting bakal ribet. Dan memang di awal agak bikin pusing 😄
Tapi begitu semuanya sudah jalan:
- deploy jadi cepat
- tinggal
git pull - project lebih rapi
- workflow lebih proper
- lebih nyaman untuk maintenance
Dan menurut gw, kalau sudah mulai sering deploy project Laravel, belajar setup SSH key itu worth it banget.