Weboldal keresés

A Git mindig felhasználói hitelesítő adatokat kér a HTTP(S) hitelesítéshez


A távoli Git-tároló eléréséhez vagy az azzal való munkához használhat SSH vagy HTTP(S) protokollt; Az előbbinél, ha a privát adattárakról van szó, egyszerűen beállíthatja az SSH-kulcsokat jelszó nélkül, amely lehetővé teszi az adatok biztonságos átvitelét felhasználónév és jelszó megadása nélkül.

A HTTP(S) esetén azonban minden kapcsolat kérni fogja felhasználónevének és jelszavának megadását (amikor a Gitnek hitelesítésre van szüksége egy adott URL-környezethez) – ezt a Github-felhasználók jól tudják.

Ebben a cikkben bemutatjuk, hogyan javíthatja ki azt, hogy a Git mindig felhasználói hitelesítési adatokat kér a HTTP(S)-n keresztüli hozzáféréshez. Elmagyarázzuk, hogyan lehet megakadályozni, hogy a Git ismételten felhasználónevet és jelszót kérjen, amikor távoli adattárral kommunikál HTTP(S)-n keresztül.

A Git telepítése Linux alatt

Ha nincs telepítve a Git csomag a rendszerére, futtassa a Linux disztribúciójának megfelelő parancsot a telepítéshez (ha szükséges, használja a Sudo parancsot).

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 felhasználónév és jelszó megadása a távoli URL-ben

Amint azt korábban említettük, egy távoli Git lerakat HTTP(S) feletti klónozásakor minden kapcsolathoz felhasználónévre és jelszóra van szükség. az ábrán látható módon.

Ha meg szeretné akadályozni, hogy a Git kérje az Ön felhasználónevét és jelszavát, az ábrán látható módon adja meg a bejelentkezési hitelesítő adatokat az URL-ben.


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

Ennek a módszernek a fő hátránya, hogy a felhasználónév és a jelszó mentésre kerül a parancsfájlban a Shell előzményfájljában.

valamint a helyi mappa alatti .git/config fájlban, ami biztonsági kockázatot jelent.

cat .git/config

Megjegyzés: Azoknak a Github-felhasználóknak, akik engedélyezték a kéttényezős hitelesítést, vagy olyan szervezethez férnek hozzá, amely SAML egyszeri bejelentkezést használ személyes hozzáférési jogkivonatot hozzon létre és használjon a jelszó megadása helyett a HTTPS Githez (ahogyan az ebben az útmutatóban a mintakimenetekben látható). Személyes hozzáférési token létrehozásához a Githubban lépjen a Beállítások => Fejlesztői beállítások => menüpontra. Személyes hozzáférési tokenek.

A Remote Git Repository felhasználónév és jelszó mentése a lemezre

A második módszer a Git hitelesítő adatok segítője a felhasználónév és a jelszó egyszerű fájlba mentéséhez a lemezen az ábrán látható módon.

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

Mostantól a Git minden egyes URL-környezethez hitelesítő adatokat ír a ~/.git-credentials fájlba, amikor először éri el. A fájl tartalmának megtekintéséhez használja a cat parancsot az ábrán látható módon.

cat  ~/.git-credentials

Az ugyanazon URL-környezethez tartozó további parancsok esetén a Git beolvassa a felhasználói hitelesítő adatait a fenti fájlból.

Az előző módszerhez hasonlóan a felhasználói hitelesítő adatok Gitnek való átadásának ez a módja sem biztonságos, mivel a tárolófájl nem titkosított, és csak szabványos fájlrendszer-engedélyek védik.

Az alább ismertetett harmadik módszer biztonságosabbnak tekinthető.

A távoli Git Repository felhasználónév és jelszó gyorsítótárazása a memóriában

Végül, de nem utolsósorban, használhatja a Git hitelesítési adatok súgóját is, hogy ideiglenesen mentse a hitelesítő adatait egy ideig a memóriában. Ehhez adja ki a következő parancsot.

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

A fenti parancs futtatása után, amikor először próbál hozzáférni egy távoli privát adattárhoz, a Git kérni fogja a felhasználónevét és jelszavát, és egy ideig elmenti a memóriába.

Az alapértelmezett gyorsítótárazási idő 900 másodperc (vagy 15 perc), amely után a Git ismét felkéri a felhasználónév és a jelszó megadására. A következőképpen módosíthatja (1800 másodperc=30 perc vagy 3600 másodperc=1 óra).

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

A Gitről és a hitelesítési adatok segítőiről további információért tekintse meg a man oldalakat.

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

Hasznos volt ez az útmutató? Értesítsen minket az alábbi visszajelzési űrlapon keresztül. A témával kapcsolatos kérdéseit vagy gondolatait is megoszthatja.