GNU/Linux >> Belajar Linux >  >> Linux

Memperbaiki HTTP Basic:Access Denied dan Fatal Authentication Failure Error Dengan GitLab

Jadi, suatu hari saya berpikir untuk menggunakan akun GitLab saya yang sudah lama terlupakan untuk menyimpan dan melacak semua penyesuaian yang saya buat ke situs web Buku Pegangan Linux.

Saya membuat repositori baru di antarmuka web GitLab dan saya melanjutkan untuk mendorong direktori yang saya miliki di sistem pribadi saya.

Semuanya baik-baik saja sampai saya mencoba memasukkan kode ke repositori jarak jauh di GitHub. Itu memberi saya kesalahan fatal yang mengatakan "Otentik gagal untuk repositori xyz".

Berikut tampilan errornya:

[email protected]:~/Documents/Local-Code$ git push -u origin master
Username for 'https://gitlab.com': gitlab_profile_username
[email protected]': 
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'https://gitlab.com/gitlab_account_username/gitlab_repository/'

Jika Anda menghadapi masalah serupa, izinkan saya menunjukkan cara memperbaiki kesalahan ini.

Menangani Kesalahan "jarak jauh:HTTP Basic:Akses ditolak" Dengan GitLab

Baris utama yang memberikan beberapa petunjuk tentang akar penyebab kesalahan ini adalah yang ini:

remote: HTTP Basic: Access denied

Mengapa saya mengatakan itu? Karena repositori GitLab Anda menggunakan HTTPS. Ia mengharapkan koneksi yang aman antara sistem Anda dan repositori Anda.

Sekarang, bukankah seharusnya secara otomatis menggunakan HTTPS? Tidak! Tidak lagi.

GitLab telah mengubah kebijakannya dan sekarang mengharapkan Anda untuk menggunakan kunci SSH Anda sendiri untuk mengautentikasi dengan repositori GitLab Anda.

Dengan kata lain, untuk mendorong kode dari sistem lokal Anda ke repositori GitLab jarak jauh, Anda harus membuat pasangan kunci SSH dan menambahkan kunci publik ke profil GitLab Anda .

Saya menggunakan Linux sehingga langkah-langkahnya paling baik diikuti di Linux. Jika Anda menggunakan Windows atau macOS, Anda harus mengambil petunjuk dan memeriksa cara melakukan hal yang sama pada sistem operasi Anda.

Pertama periksa apakah Anda sudah memiliki kunci SSH:

ls ~/.ssh/id_rsa.pub

Jika Anda tidak memilikinya, buatlah menggunakan bagian berikutnya jika tidak, lompat ke bagian setelah ini.

Membuat kunci SSH (jika Anda belum memilikinya)

Saya menggunakan Ubuntu jadi langkah-langkahnya untuk Ubuntu. Jika Anda menggunakan beberapa distribusi lain, langkahnya mungkin berbeda atau tidak.

Buka terminal dan gunakan perintah berikut:

ssh-keygen

Anda akan melihat output seperti ini:

Generating public/private rsa key pair.
Enter file in which to save the key (/user_home/.ssh/id_rsa):

Tekan tombol enter dan pergi dengan pilihan default. Anda mungkin diminta memasukkan kata sandi untuk mengamankan kunci SSH Anda. Jika Anda menetapkan kata sandi, Anda harus memasukkannya setiap kali Anda mencoba membuat koneksi SSH menggunakan kunci SSH yang dihasilkan. Anda mungkin atau mungkin tidak menyetel kata sandi untuk kunci SSH.

Menambahkan kunci SSH publik ke GitLab

Jika Anda telah membuat kunci SSH di komputer pribadi Anda, Anda harus menemukannya di direktori .ssh di bawah direktori home Anda di sebagian besar distribusi Linux. Tampilkan isinya dengan perintah ini:

cat ~/.ssh/id_rsa.pub

Salin konten kunci publik Anda. Sekarang masuk ke akun GitLab Anda, buka Pengaturan Pengguna dan cari kunci SSH di bilah sisi kiri. Atau, Anda bisa pergi ke halaman ini saat login.

Anda akan melihat bidang untuk menambahkan kunci publik. Cukup tempel kuncinya di sini. Beri judul untuk dengan mudah mengenali komputer mana yang memiliki kunci ini. Kecuali Anda melakukan sesuatu sendiri, kunci SSH tidak memiliki tanggal kedaluwarsa secara default. Jadi biarkan bidang kedaluwarsa tidak tersentuh.

Selesai dengan semuanya? Tekan tombol Tambahkan tombol.

Anda dapat menambahkan lebih dari satu kunci SSH. Itu normal jika Anda memiliki lebih dari satu komputer.

Periksa apakah Anda dapat memasukkan kode ke GitLab sekarang

Jadi, Anda menambahkan kunci SSH Anda ke profil GitLab Anda. Hal-hal harus baik sekarang. Saatnya memverifikasinya.

Cobalah untuk mendorong kode Anda lagi. Lihat apakah itu berhasil. Biasanya, Anda akan melihat output seperti ini jika berhasil:

[email protected]:~/Documents/Local-Code$ git push -u origin master
Username for 'https://gitlab.com': gitlab_account_username
Password for 'https://[email protected]': 
Enumerating objects: 127, done.
Counting objects: 100% (127/127), done.
Delta compression using up to 4 threads
Compressing objects: 100% (122/122), done.
Writing objects: 100% (127/127), 401.30 KiB | 6.37 MiB/s, done.
Total 127 (delta 14), reused 0 (delta 0)
remote: Resolving deltas: 100% (14/14), done.
To https://gitlab.com/gitlab_account_username/gitlab_repository.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

Masih melihat kesalahan? Perhatikan perbedaan antara nama pengguna profil GitLab dan nama pengguna akun!

Saya mempelajarinya dengan susah payah.

GitLab memiliki dua nama pengguna:nama pengguna profil dan nama pengguna akun.

Anda dapat dengan mudah mengubah nama pengguna profil tanpa konsekuensi apa pun. Tetapi mengubah nama pengguna akun bisa menjadi bencana besar.

Nama pengguna akun adalah apa yang akan Anda lihat di URL repositori GitLab Anda:

https://gitlab.com/gitlab_account_username/repository_name

Saat membuat repositori GitLab baru dari situs webnya, GitLab menyarankan untuk menggunakan nama pengguna profil di pengaturan konfigurasi Git di komputer pribadi.

Saya melakukan itu dan saya mencoba menggunakan nama pengguna profil yang sama sambil mendorong kode ke repositori. Tidak mengherankan, itu ditolak bahkan setelah menambahkan kunci SSH:

[email protected]:~/Documents/Local-Code$ git push -u origin master
Username for 'https://gitlab.com': gitlab_profile_username
Password for 'https://[email protected]': 
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'https://gitlab.com/gitlab_account_username/gitlab_repository.git/'

Jadi, triknya adalah dengan menggunakan nama pengguna akun GitLab di sini. Ketika saya melakukannya, push ke repositori GitLab jarak jauh berhasil.

Apakah berhasil untuk Anda?

Yah, saya membagikan cobaan saya dengan mendorong kode ke repositori GitLab. Saya harap ini membantu Anda dengan kesalahan "fatal:Otentikasi gagal".

Apakah itu berhasil untuk Anda? Beri tahu saya dengan ya atau tidak di bagian komentar.


Linux
  1. Cara Membuat Pasangan Kunci SSH (dengan Contoh)

  2. Cara Memperbaiki Kesalahan – ModSecurity:Akses ditolak dengan kode 44 [Apache]

  3. Ssh – Masih Mendapatkan Prompt Kata Sandi Dengan Ssh Dengan Otentikasi Kunci Publik?

  1. Memulai SSH di Linux

  2. Izinkan login root ssh hanya dengan otentikasi kunci publik

  3. Batasi akses SSH berbasis kata sandi per pengguna tetapi izinkan otentikasi kunci

  1. Cara Mengonfigurasi Otentikasi Berbasis Kunci SSH Di Linux

  2. SSH – Menghasilkan dan Bekerja dengan kunci ssh

  3. Bagaimana menghubungkan ke server ssh dengan plink dan cmd dan kunci publik