Cara Memperbaiki Git Sentiasa meminta kelayakan pengguna untuk pengesahan HTTP (s)

Cara Memperbaiki Git Sentiasa meminta kelayakan pengguna untuk pengesahan HTTP (s)

Untuk mengakses atau bekerja dengan repositori git jauh, anda boleh menggunakan SSH atau Http (s) protokol; Dengan bekas, ketika datang ke repositori swasta, anda hanya boleh mengkonfigurasi kekunci SSH tanpa frasa laluan yang membolehkan anda memindahkan data dengan selamat tanpa menaip nama pengguna dan kata laluan anda.

Walau bagaimanapun, dengan Http (s), Setiap sambungan akan meminta anda memasukkan nama pengguna dan kata laluan anda (apabila Git memerlukan pengesahan untuk konteks URL tertentu) - Pengguna GitHub tahu ini dengan baik.

Dalam artikel ini, kami akan menunjukkan kepada anda bagaimana untuk memperbaiki Git Sentiasa meminta kelayakan pengguna untuk mengakses Http (s). Kami akan menerangkan cara yang berbeza untuk mencegah Git dari berulang kali mendorong nama pengguna dan kata laluan ketika berinteraksi dengan repositori jauh Http (s).

Cara memasang git di linux

Sekiranya anda tidak mempunyai Git pakej yang dipasang pada sistem anda, jalankan arahan yang sesuai untuk taburan Linux anda untuk memasangnya (gunakan Sudo perintah di mana perlu).

$ sudo apt install git [on debian/ubuntu] # yum install git [on centos/rhel/fedora] $ sudo zyper install git [on OpenSuse] $ sudo pacman -s git [on arch linux] 

Memasukkan Nama Pengguna dan Kata Laluan Git dalam URL Jauh

Seperti yang telah kami sebutkan tadi, ketika mengkloning jauh Git repositori Http (s), Setiap sambungan memerlukan a nama pengguna dan kata laluan seperti yang ditunjukkan.

Klon repositori git jauh

Untuk mengelakkan Git dari meminta anda nama pengguna dan kata laluan, anda boleh memasukkan kelayakan log masuk dalam URL seperti yang ditunjukkan.

$ sudo git clone https: // username: [e -mel dilindungi]/nama pengguna/repo_name.git atau $ sudo git clone https: // username: [e -mel dilindungi]/nama pengguna/repo_name.git local_folder 
Tambahkan kelayakan git dalam URL

Kelemahan utama kaedah ini bahawa anda nama pengguna dan kata laluan akan disimpan dalam perintah dalam fail sejarah shell.

Lihat sejarah shell

serta di .git/config fail di bawah folder tempatan, yang mempunyai risiko keselamatan.

$ kucing .git/config 
Lihat kelayakan git dalam fail konfigurasi

Catatan: Untuk pengguna GitHub yang telah membolehkan pengesahan dua faktor, atau mengakses organisasi yang menggunakannya SAML Single Sign-On, anda mesti menjana dan menggunakan token akses peribadi dan bukannya memasukkan kata laluan anda untuk HTTPS git (seperti yang ditunjukkan dalam output sampel dalam panduan ini). Untuk menjana token akses peribadi, masuk Github, pergi ke Tetapan => Tetapan pemaju => Peribadi token akses.

Menyimpan nama pengguna dan kata laluan repositori git jauh pada cakera

Kaedah kedua ialah menggunakan Helper Kelayakan Git untuk menyimpan nama pengguna dan kata laluan anda dalam fail biasa pada cakera seperti yang ditunjukkan.

kelayakan konfigurasi $ git.kedai penolong atau konfigurasi $ git -kelayakan global.kedai penolong 

Bermula dari sekarang, Git akan menulis kelayakan ke ~/.Git-credentials fail untuk setiap konteks URL, apabila diakses untuk kali pertama. Untuk melihat kandungan fail ini, anda boleh menggunakan perintah kucing seperti yang ditunjukkan.

$ kucing ~/.Git-credentials 
Lihat kelayakan git yang disimpan pada cakera

Untuk arahan berikutnya untuk konteks URL yang sama, Git akan membaca kelayakan pengguna anda dari fail di atas.

Sama seperti kaedah sebelumnya, cara ini melepasi kelayakan pengguna ke Git juga tidak selamat kerana fail penyimpanan tidak disulitkan dan hanya dilindungi oleh kebenaran sistem fail standard.

Kaedah ketiga yang dijelaskan di bawah, dianggap lebih selamat.

Nama Pengguna Repositori Repositori dan Kata Laluan Caching Git dalam Memori

Terakhir tetapi tidak kurang, anda juga boleh menggunakan Git penolong kelayakan untuk sementara menyelamatkan kelayakan anda dalam ingatan untuk beberapa waktu. Untuk melakukan itu, mengeluarkan arahan berikut.

kelayakan konfigurasi $ git.Cache Helper atau $ git config -kelayakan global.cache pembantu 

Setelah menjalankan arahan di atas, apabila anda cuba mengakses repositori peribadi terpencil untuk kali pertama, Git akan meminta nama pengguna dan kata laluan anda dan simpan dalam ingatan untuk beberapa waktu.

Kelayakan git cache dalam ingatan

Masa caching lalai adalah 900 detik (atau 15 minit), selepas itu git akan meminta anda memasukkan nama pengguna dan kata laluan anda lagi. Anda boleh mengubahnya seperti berikut (1800 saat = 30 minit atau 3600 saat = 1 jam).

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

Untuk maklumat lanjut mengenai Git dan pembantu kelayakan, lihat halaman lelaki mereka.

$ man git $ man git-credential-cache $ man git-credential-store 

Adakah panduan ini membantu? Beritahu kami melalui borang maklum balas di bawah. Anda juga boleh berkongsi sebarang soalan atau pemikiran mengenai topik ini.