Git'in HTTP(S) Kimlik Doğrulaması İçin Her Zaman Kullanıcı Kimlik Bilgilerini İstemesini Düzeltme
Uzak Git deposuna erişmek veya onunla çalışmak için SSH veya HTTP(S) protokollerini kullanabilirsiniz; birincisiyle, özel depolar söz konusu olduğunda, SSH anahtarlarını parola olmadan kolayca yapılandırabilirsiniz; bu, kullanıcı adınızı ve parolanızı yazmadan verileri güvenli bir şekilde aktarmanıza olanak tanır.
Ancak HTTP(S) ile her bağlantı sizden kullanıcı adınızı ve şifrenizi girmenizi ister (Git belirli bir URL bağlamı için kimlik doğrulamasına ihtiyaç duyduğunda) - Github kullanıcıları bunu iyi bilir.
Bu makalede, Git'in HTTP(S) üzerinden erişim için her zaman kullanıcı kimlik bilgilerini istemesini nasıl düzelteceğinizi göstereceğiz. Git'in HTTP(S) üzerinden uzak bir depoyla etkileşimde bulunurken tekrar tekrar kullanıcı adı ve şifre istemesini önlemenin farklı yollarını açıklayacağız.
Git'i Linux'a Nasıl Yükleyebilirim?
Sisteminizde Git paketi yüklü değilse, onu yüklemek için Linux dağıtımınıza uygun komutu çalıştırın (gerektiğinde Sudo komutunu kullanın).
sudo apt install git [On Debian/Ubuntu]
yum install git [On CentOS/RHEL/Fedora]
sudo zypper install git [On OpenSuse]
sudo pacman -S git [On Arch Linux]
Uzak URL'ye Git Kullanıcı Adı ve Parolasını Girme
Daha önce de belirttiğimiz gibi, uzak bir Git deposunu HTTP(S) üzerinden klonlarken, her bağlantının bir kullanıcı adı ve şifreye ihtiyacı vardır gösterildiği gibi.
Git'in kullanıcı adınızı ve şifrenizi sormasını önlemek için, oturum açma kimlik bilgilerinizi gösterildiği gibi URL'ye girebilirsiniz.
sudo git clone https://username:[email /username/repo_name.git
OR
sudo git clone https://username:[email /username/repo_name.git local_folder
Bu yöntemin en büyük dezavantajı, kullanıcı adınızın ve şifrenizin Kabuk geçmişi dosyasındaki komuta kaydedilmesidir.
ayrıca yerel klasör altındaki .git/config dosyasında da bulunur ve bu da güvenlik riski taşır.
cat .git/config
Not: İki faktörlü kimlik doğrulamayı etkinleştirmiş veya SAML tekli oturum açmayı kullanan bir kuruluşa erişen Github kullanıcıları için şunları yapmalısınız: HTTPS Git için şifrenizi girmek yerine kişisel erişim belirteci oluşturup kullanın (bu kılavuzdaki örnek çıktılarda gösterildiği gibi). Kişisel erişim jetonu oluşturmak için Github'da Ayarlar => Geliştirici Ayarları =>'na gidin. Kişisel erişim jetonları.
Uzak Git Havuzu Kullanıcı Adını ve Parolasını Diske Kaydetme
İkinci yöntem, kullanıcı adınızı ve şifrenizi gösterildiği gibi diskteki düz bir dosyaya kaydetmek için Git kimlik bilgileri yardımcısını kullanmaktır.
git config credential.helper store
OR
git config --global credential.helper store
Artık Git, ilk kez erişildiğinde her URL bağlamı için kimlik bilgilerini ~/.git-credentials dosyasına yazacaktır. Bu dosyanın içeriğini görüntülemek için gösterildiği gibi cat komutunu kullanabilirsiniz.
cat ~/.git-credentials
Aynı URL bağlamına yönelik sonraki komutlar için Git, kullanıcı kimlik bilgilerinizi yukarıdaki dosyadan okuyacaktır.
Önceki yöntemde olduğu gibi, kullanıcı kimlik bilgilerinin Git'e aktarılmasının bu yolu da depolama dosyası şifrelenmediğinden ve yalnızca standart dosya sistemi izinleriyle korunduğundan güvenli değildir.
Aşağıda açıklanan üçüncü yöntemin daha güvenli olduğu düşünülmektedir.
Uzak Git Deposu Kullanıcı Adı ve Parolasını Bellekte Önbelleğe Alma
Son olarak, kimlik bilgilerinizi bir süreliğine geçici olarak belleğe kaydetmek için Git kimlik bilgileri yardımcısını da kullanabilirsiniz. Bunu yapmak için aşağıdaki komutu verin.
git config credential.helper cache
OR
git config --global credential.helper cache
Yukarıdaki komutu çalıştırdıktan sonra, uzak bir özel depoya ilk kez erişmeye çalıştığınızda Git, kullanıcı adınızı ve şifrenizi soracak ve bir süreliğine hafızasına kaydedecektir.
Varsayılan önbelleğe alma süresi 900 saniyedir (veya 15 dakika), bunun ardından Git, kullanıcı adınızı ve şifrenizi tekrar girmenizi isteyecektir. Bunu şu şekilde değiştirebilirsiniz (1800 saniye=30 dakika veya 3600 saniye=1 saat).
git config --global credential.helper 'cache --timeout=18000'
OR
git config --global credential.helper 'cache --timeout=36000'
Git ve kimlik bilgisi yardımcıları hakkında daha fazla bilgi için bunların kılavuz sayfalarına bakın.
man git
man git-credential-cache
man git-credential-store
Bu rehber faydalı oldu mu? Aşağıdaki geri bildirim formunu kullanarak bize bildirin. Bu konuyla ilgili soru ve düşüncelerinizi de paylaşabilirsiniz.