Bagaimana cara memperbaiki git selalu meminta kredensial pengguna untuk otentikasi http

Bagaimana cara memperbaiki git selalu meminta kredensial pengguna untuk otentikasi http

Untuk mengakses atau bekerja dengan repositori git jarak jauh, Anda dapat menggunakan Ssh atau Http (s) protokol; Dengan yang pertama, ketika datang ke repositori pribadi, Anda dapat dengan mudah mengonfigurasi tombol SSH tanpa frasa sandi yang memungkinkan Anda untuk mentransfer data dengan aman tanpa mengetikkan nama pengguna dan kata sandi Anda.

Namun, dengan Http (s), Setiap koneksi akan meminta Anda untuk memasukkan nama pengguna dan kata sandi Anda (saat git membutuhkan otentikasi untuk konteks URL tertentu) - pengguna github tahu ini dengan baik.

Di artikel ini, kami akan menunjukkan cara memperbaiki git selalu meminta kredensial pengguna untuk akses Http (s). Kami akan menjelaskan berbagai cara untuk mencegah git berulang kali meminta nama pengguna dan kata sandi saat berinteraksi dengan repositori jarak jauh Http (s).

Cara menginstal git di linux

Jika Anda tidak memiliki Git Paket yang diinstal pada sistem Anda, jalankan perintah yang sesuai untuk distribusi Linux Anda untuk menginstalnya (gunakan Sudo Perintah jika perlu).

$ sudo apt install git [on debian/ubuntu] # yum install git [on centos/rhel/fedora] $ sudo zypper instal git [on opensuse] $ sudo pacman -s git [di arch linux] 

Memasuki nama pengguna dan kata sandi Git di URL jarak jauh

Seperti yang telah kami sebutkan sebelumnya, saat mengkloning remote Git Repositori lebih Http (s), Setiap koneksi membutuhkan a nama belakang Dan kata sandi seperti yang ditunjukkan.

Klon Remote Git Repository

Untuk mencegah Git dari meminta Anda nama belakang Dan kata sandi, Anda dapat memasukkan kredensial login di URL seperti yang ditunjukkan.

$ sudo git clone https: // nama pengguna: [email dilindungi]/nama pengguna/repo_name.git atau $ sudo git klon https: // nama pengguna: [email dilindungi]/nama pengguna/repo_name.git local_folder 
Tambahkan kredensial git dalam url

Kelemahan utama dari metode ini nama belakang Dan kata sandi akan disimpan dalam perintah dalam file riwayat shell.

Lihat Riwayat Shell

serta di .git/config file di bawah folder lokal, yang memiliki risiko keamanan.

$ kucing .git/config 
Lihat kredensial git dalam file konfigurasi

Catatan: Untuk pengguna github yang telah mengaktifkan otentikasi dua faktor, atau mengakses organisasi yang menggunakan Saml Masuk tunggal, Anda harus menghasilkan dan menggunakan token akses pribadi alih-alih memasukkan kata sandi Anda untuk Https git (Seperti yang ditunjukkan dalam output sampel dalam panduan ini). Untuk menghasilkan token akses pribadi, di GitHub, pergi ke Pengaturan => Pengaturan Pengembang => Pribadi Akses token.

Menyimpan Nama Pengguna Repositori Remote Git dan Kata Sandi di Disk

Metode kedua adalah menggunakan helper kredensial git untuk menyimpan nama pengguna dan kata sandi Anda dalam file biasa pada disk seperti yang ditunjukkan.

Kredensial Konfigurasi $ Git.Toko Pembantu atau Konfigurasi $ Git -Kredensial Global.Toko Pembantu 

Dari sekarang, Git akan menulis kredensial ke ~/.Git-kredensial mengajukan setiap konteks URL, saat diakses untuk pertama kalinya. Untuk melihat konten file ini, Anda dapat menggunakan perintah CAT seperti yang ditunjukkan.

$ kucing ~/.Git-kredensial 
Lihat kredensial git yang disimpan di disk

Untuk perintah selanjutnya untuk konteks URL yang sama, Git akan membaca kredensial pengguna Anda dari file di atas.

Sama seperti metode sebelumnya, cara ini meneruskan kredensial pengguna Git juga tidak aman karena file penyimpanan tidak terenkripsi dan hanya dilindungi oleh izin sistem file standar.

Metode ketiga yang dijelaskan di bawah ini, dianggap lebih aman.

Caching Remote Git Repository Username dan Password in Mory

Terakhir, Anda juga dapat menggunakan Git helper kredensial untuk sementara menyimpan kredensial Anda dalam memori untuk beberapa waktu. Untuk melakukan itu, keluarkan perintah berikut.

Kredensial Konfigurasi $ Git.Helper Cache atau $ git config -kredensial global.cache pembantu 

Setelah menjalankan perintah di atas, ketika Anda mencoba mengakses repositori pribadi jarak jauh untuk pertama kalinya, Git akan meminta nama pengguna dan kata sandi Anda dan menyimpannya dalam memori untuk beberapa waktu.

Cache git kredensial dalam memori

Waktu caching default adalah 900 detik (atau 15 menit), setelah itu git akan meminta Anda untuk memasukkan nama pengguna dan kata sandi Anda lagi. Anda dapat mengubahnya sebagai berikut (1800 detik = 30 menit atau 3600 detik = 1 jam).

$ git config -kredensial global.Helper 'Cache -Timeout = 18000' atau $ git config -kredensial global.Helper 'Cache -Timeout = 36000' 

Untuk informasi lebih lanjut tentang Git dan para pembantu kredensial, lihat halaman mereka.

$ man git $ man git-kredensial-cache $ man git-kredensial-toko 

Apakah panduan ini bermanfaat? Beri tahu kami melalui formulir umpan balik di bawah ini. Anda juga dapat membagikan pertanyaan atau pemikiran tentang topik ini.