Cara Mengatasi Git Pull Gagal dengan Deploy Key di Gitea (Lengkap Step-by-Step)

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

  1. Masuk ke Gitea via browser
  2. Buka repository (contoh: rasyahroel/kps_bag_vendor_back)
  3. Masuk ke Settings → Deploy Keys
  4. Klik Add Deploy Key
  5. Paste isi file berikut:
    cat ~/.ssh/deploy-kps-backend.pub
  6. Centang ✅ Allow write access (jika perlu akses push)
  7. 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.

Posting Komentar

0 Komentar