Menggunakan Gitea sebagai Git server mandiri memang sangat efisien, apalagi untuk kebutuhan self-hosted CI/CD atau deployment otomatis. Namun, banyak pengguna sering mengalami masalah saat mencoba menjalankan:
git pull origin main
Dan muncul error seperti:
Gitea: Public (Deploy) Key: [ID] is not authorized to read [repo]
fatal: Could not read from remote repository.
Padahal SSH key sudah dibuat dan diupload ke repository. Kenapa bisa begitu?
Di artikel ini, kita akan bahas step by step solusi agar git pull
dari Gitea bisa berjalan otomatis tanpa login menggunakan SSH Deploy Key.
🧠 Kenapa Error Ini Bisa Terjadi?
- Deploy key hanya berlaku untuk satu repository.
- Deploy key tidak bisa digunakan di banyak repo sekaligus.
- Deploy key hanya bekerja untuk koneksi via SSH, bukan HTTP.
Jadi, meskipun kamu sudah menambahkan SSH key ke Gitea, kalau key tersebut:
- Sudah digunakan di repo lain, atau
- Repo salah, atau
- Koneksi pakai HTTP,
Maka Gitea akan tetap menolak akses saat git pull
.
✅ Solusi Lengkap: Git Pull dengan Deploy Key yang Benar
Berikut langkah-langkah dari awal hingga berhasil:
🔹 1. Buat SSH Key Baru untuk Deploy
ssh-keygen -t ed25519 -C "deploy-kps-backend" -f ~/.ssh/deploy-kps-backend
Tekan ENTER saja saat ditanya passphrase (biar kosong).
🔹 2. Tambahkan Deploy Key ke Repository di Gitea
- Masuk ke Gitea via browser
- Buka repository (contoh:
rasyahroel/kps_bag_vendor_back
) - Masuk ke Settings → Deploy Keys
- Klik Add Deploy Key
- Paste isi file berikut:
cat ~/.ssh/deploy-kps-backend.pub
- Centang ✅ Allow write access (jika perlu akses push)
- Simpan
📌 Penting: Pastikan key ini belum pernah dipakai di repo lain.
🔹 3. Konfigurasi SSH Config
nano ~/.ssh/config
Lalu tambahkan:
Host gitea-kps-backend
HostName git.example.com
Port 22
User git
IdentityFile ~/.ssh/deploy-kps-backend
IdentitiesOnly yes
Gantilah git.example.com
dengan domain Git server kamu.
🔹 4. Ganti Remote Git ke SSH
cd /var/www/kpsaxway
git remote set-url origin git@gitea-kps-backend:rasyahroel/kps_bag_vendor_back.git
Periksa dengan:
git remote -v
Hasil yang benar:
origin git@gitea-kps-backend:rasyahroel/kps_bag_vendor_back.git (fetch)
origin git@gitea-kps-backend:rasyahroel/kps_bag_vendor_back.git (push)
🔹 5. Tes Koneksi
ssh -T gitea-kps-backend
Hasil yang diharapkan:
Hi there! You've successfully authenticated with the deploy key named ...
🔹 6. Jalankan Git Pull
git pull origin main
Jika berhasil, kamu akan melihat:
From gitea-kps-backend:rasyahroel/kps_bag_vendor_back
* branch main -> FETCH_HEAD
Already up to date.
📝 Kesimpulan
Gitea sangat bagus untuk Git server lokal, tapi aturan deploy key-nya ketat:
- 🔑 1 deploy key hanya untuk 1 repo
- ❌ Deploy key tidak bisa digunakan lintas repo
- ✅ Gunakan SSH (bukan HTTP)
- 🧩 Gunakan host alias di
~/.ssh/config
untuk mengelola banyak key
Dengan mengikuti langkah-langkah di atas, kamu bisa memastikan git pull origin main
berjalan otomatis dan bebas masalah di server manapun.
🚀 Bonus Tips
- Buat 1 SSH key per repo untuk keamanan maksimal
- Atau buat user
deployer
di Gitea yang punya akses ke semua repo - Backup semua SSH key kamu secara aman
Semoga artikel ini membantu kamu menyelesaikan masalah git pull
dari Gitea!
Kalau kamu punya pertanyaan atau error lain, boleh tinggalkan komentar ya.
0 Komentar