Kuinka korjata Git, joka pyytää aina käyttäjän kirjautumistietoja HTTP (S) -todennukselle


Voit käyttää tai siirtää tietoja turvallisesti kirjoittamatta käyttäjänimeäsi ja salasanaasi.

HTTP (S) -palvelun avulla jokainen yhteys kuitenkin kehottaa sinua antamaan käyttäjätunnuksesi ja salasanasi (kun Git tarvitsee todennusta tietyssä URL-kontekstissa) - Github-käyttäjät tietävät tämän hyvin.

Tässä artikkelissa näytämme, kuinka korjata Git aina pyytämällä käyttäjän tunnistetietoja HTTP (S) -yhteyden kautta. Selitämme erilaisia tapoja estää Git pyytämästä toistuvasti käyttäjätunnusta ja salasanaa, kun olet vuorovaikutuksessa etätietovaraston kanssa HTTP: n (S) kautta.

Kuinka asentaa Git Linuxiin

Jos sinulla ei ole Git-pakettia asennettuna järjestelmään, suorita Linux-jakelusi mukainen komento sen asentamiseksi (käytä Sudo-komentoa tarvittaessa).

$ 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]

Git-käyttäjänimen ja salasanan syöttäminen etä-URL-osoitteeseen

Kuten aiemmin mainitsimme, kloonattaessa etä-Git-tietovarastoa HTTP: n (S) kautta, jokainen yhteys tarvitsee käyttäjänimen ja salasanan, kuten on esitetty.

Voit estää Gitiä pyytämästä käyttäjänimeäsi ja salasanaasi syöttämällä kirjautumistiedot URL-osoitteeseen kuvan osoittamalla tavalla.

$ sudo git clone https://username:[email /username/repo_name.git
OR
$ sudo git clone https://username:[email /username/repo_name.git local_folder

Tämän menetelmän tärkein haittapuoli on, että käyttäjänimesi ja salasanasi tallennetaan komentoon Shell-historiatiedostossa.

samoin kuin paikallisen kansion alla olevassa .git/config-tiedostossa, joka aiheuttaa tietoturvariskin.

$ cat .git/config

Huomaa: Github-käyttäjille, jotka ovat ottaneet käyttöön kaksivaiheisen todennuksen tai käyttävät organisaatiota, joka käyttää SAML-kertakirjautumista, sinun on luotava ja käytettävä henkilökohtaista käyttöoikeustunnusta sen sijaan, että kirjoitat salasanasi HTTPS Git -palveluun (kuten esimerkkilähdöissä näkyy). tässä oppaassa). Voit luoda henkilökohtaisen käyttöoikeustunnuksen siirtymällä Githubissa kohtaan Asetukset => Kehittäjäasetukset => Henkilökohtaiset käyttöoikeustunnukset.

Tallennetaan Git-kaukovaraston käyttäjätunnus ja salasana levylle

Toinen tapa on käyttää käyttäjätunnusta ja salasanaa Git-tunnistetiedot-apulaitteella tavalliseen tiedostoon levyllä kuvan osoittamalla tavalla.

$ git config credential.helper store				
OR
$ git config --global credential.helper store		

Tästä lähtien Git kirjoittaa tunnistetiedot ~/.git-credentials-tiedostoon jokaiselle URL-kontekstille, kun sitä käytetään ensimmäisen kerran. Voit tarkastella tämän tiedoston sisältöä käyttämällä kissa-komentoa kuvan mukaisesti.

$ cat  ~/.git-credentials

Seuraavia komentoja varten samalla URL-kontekstilla Git lukee käyttäjän tunnistetiedot yllä olevasta tiedostosta.

Aivan kuten edellisessä menetelmässä, myös tämä tapa siirtää käyttäjän tunnistetiedot Gitille on epävarma, koska tallennustiedosto on salaamatonta ja sitä suojaa vain tavalliset tiedostojärjestelmän oikeudet.

Kolmatta alla selitettyä menetelmää pidetään turvallisempana.

Välimuistiin tallentaminen Remote Git Repository -nimi ja salasana muistiin

Viimeisenä mutta ei vähäisimpänä, voit myös käyttää Git-tunnisteiden auttajaa tallentaaksesi tunnistetiedot väliaikaisesti muistiin jonkin aikaa. Voit tehdä tämän antamalla seuraavan komennon.

$ git config credential.helper cache
OR
$ git config --global credential.helper cache

Kun olet suorittanut yllä olevan komennon, kun yrität käyttää yksityistä etärekisteriä ensimmäistä kertaa, Git pyytää käyttäjänimeäsi ja salasanaasi ja tallentaa sen muistiin jonkin aikaa.

Oletusarvoinen välimuistiaika on 900 sekuntia (tai 15 minuuttia), minkä jälkeen Git kehottaa sinua syöttämään käyttäjätunnuksesi ja salasanasi uudelleen. Voit muuttaa sitä seuraavasti (1800 sekuntia = 30 minuuttia tai 3600 sekuntia = 1 tunti).

$ git config --global credential.helper 'cache --timeout=18000'
OR
$ git config --global credential.helper 'cache --timeout=36000'

Lisätietoja Git- ja tunnistetietojen avustajista on heidän man-sivuillaan.

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

Oliko tästä oppaasta hyötyä? Kerro meille alla olevan palautelomakkeen kautta. Voit myös jakaa kysymyksiä tai ajatuksia tästä aiheesta.