19 August 2026

Solusi "Permission denied (publickey)" saat Clone Private Repository Gitlab

 

Berikut ini adalah pesan error saat melakukan clone repositori gitlab menggunakan SSH:

Cloning into 'tes-repo'...
git@gitlab.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.


Error di atas terjadi karena adanya issue SSH Key. Oleh karena itu, cek terlebih dahulu apakah laptop atau komputer dapat terkoneksi ke gitlab menggunakan SSH.

$ ssh -T git@gitlab.com
Welcome to GitLab, @username!


Apabila perintah ssh di atas menampilkan output Welcome to GitLab, maka koneksi SSH dari perangkat lokal ke gitlab sudah berhasil. Jika koneksi SSH gagal, pastikan untuk mengupload file Public Key SSH yang ada di perangkat lokal ke akun gitlab teman-teman.

Untuk menambahkan SSH Key di Gitlab, silakan teman-teman login Gitlab terlebih dahulu. Kemudian klik gambar profile akun di sebelah kanan atas, lalu pilih Preferences.


Gambar profil akun gitlab


Klik menu Access > SSH Keys.


Menu SSH Keys


Klik Add new key untuk menambahkan SSH Key.


Tombol tambah key ssh


Masukkan Public Key SSH teman-teman.


Isi public key ssh


Kemudian tekan tombol Add key.


Tombol simpan key ssh


Pastikan key sudah berhasil ditambahkan.


Key ssh berhasil ditambahkan


Selanjutnya jalankan SSH agent pada perangkat lokal teman-teman.

Untuk linux:

eval "$(ssh-agent -s)"


Untuk Windows:

Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent


Selanjutnya registrasikan SSH Key secara lokal.

di Linux:

ssh-add ~/.ssh/nama_private_key_ssh


di Windows:

ssh-add ~\.ssh\nama_private_key_ssh


Jika nama private key SSH yang teman-teman gunakan tidak menggunakan nama default, maka teman-teman perlu menambahkan konfigurasi berikut pada ~/.ssh/config:

Host gitlab.com
  HostName gitlab.com
  User git
  IdentityFile ~/.ssh/nama_private_key_ssh
  IdentitiesOnly yes


Lakukan clone repositori kembali.

$ git clone git@gitlab.com:username/tes-repo.git
Cloning into 'tes-repo'...
remote: Enumerating objects: 9, done.
remote: Total 9 (delta 0), reused 0 (delta 0), pack-reused 9 (from 1)
Receiving objects: 100% (9/9), done.
Resolving deltas: 100% (1/1), done.


Sekarang proses clone untuk private repository gitlab telah berhasil. Demikianlah tutorial singkat ini. Semoga bermanfaat.

Bagikan

Jangan lewatkan