Git - hitelesítő tároló

Credential tároló

Ha SSH-átvitelt használ a távoli kiszolgálókhoz való csatlakozáshoz, akkor a kulcsot jelszó nélkül is használhatja, amely lehetővé teszi az adatok biztonságos továbbítását bejelentkezési és jelszó megadása nélkül. Ez azonban nem lehetséges HTTP-protokollok használatával - minden kapcsolathoz két bejelentkezés, jelszó szükséges. Még mindig nehezebb a kétfaktoros hitelesítéssel rendelkező rendszereknél, amikor a jelszóként használt kifejezés véletlenszerűen generálódik, és nehéz reprodukálni.

Szerencsére a Git rendelkezik hitelesítési rendszerrel, amely segíthet ezzel. A Git-ban "a dobozon kívül" számos lehetőség létezik:

Alapértelmezés szerint a Git egyáltalán nem tárolja a hitelesítő adatokat. Minden kapcsolat megkérdezi a bejelentkezési és a jelszavadat.

A "gyorsítótár" módban a hitelesítő adatok egy bizonyos ideig tárolódnak a memóriában. A jelszavak egyikét sem mentik a lemezre, és 15 perc múlva eltávolítják a gyorsítótárból.

Az "áruház" módban a hitelesítő adatok határozatlan ideig tiszta formában kerülnek tárolásra a lemezen lévő fájlban. Ez azt jelenti, hogy amíg nem módosítja a jelszót a Git szerverre, nem kell többé megadnia a hitelesítő adatait. Ennek a megközelítésnek a hátránya, hogy a jelszavát világos formában tartja a saját könyvtárában lévő fájlban.

A Git beállítások megváltoztatásával kiválaszthatjuk az egyik módszert:

Néhány segítőnek van lehetősége. Az áruház segítő elfogadhatja a --file argumentumot . amely meghatározza, hogy a fájlt a megnyitott fiókadatok tárolják-e (alapértelmezetten használják

/.git-credentials). A "gyorsítótár" segítő a "timeout" opciót veszi át . amely megváltoztatja az időtartamot, amíg a démon továbbra is fut (alapértelmezett "900" vagy 15 perc). Az alábbiakban bemutatjuk, hogyan állíthatja be a tároló asszisztensét egy adott fájl használatához:

A Git segítségével egyszerre több asszisztens is beállítható. Amikor egy adott kiszolgálóra hitelesítő adatokat keres, a Git sorrendben lekérdezi hitelesítő adatait és leáll, amikor az első válasz érkezik. A hitelesítő adatok mentésekor a Git elküldi azokat a listán szereplő összes asszisztensnek, ami viszont eldöntheti, hogy mit kell tennie ezekkel az adatokkal. Így néz ki a .gitconfig. ha van egy fájl hitelesítő adatokkal a flash meghajtón, de távollétében azt szeretné, hogy a gyorsítótárazást is használja a RAM-ban.

A motorháztető alatt

Ez az a csapat, amely elindítja az interakciót.

Ezt követően a Git-hitelesítő elvárja a szabványos bemeneti adatfolyamtól származó adatokat. Mi átadjuk neki, amit tudunk: a protokoll és a szerver neve.

Egy üres karakterlánc azt jelzi, hogy a bevitel befejeződött, és a hitelesítői felügyeleti rendszernek reagálnia kell a tudomására.

Ezután a Git-hitelesítő valamilyen munkát végez, és megjeleníti az észlelt információkat.

Ha a hitelesítő adatok nem találhatók meg, a Git felkéri a felhasználót a bejelentkezéshez / jelszóhoz, és visszaadja őket az érintett kimeneti adatfolyamhoz (ebben a példában ez ugyanaz a konzol).

Valójában a hitelesítő rendszer kezeli a Git-tól független programokat; mit és hogyan függ többek között a credential.helper beállításoktól. A hívás számos módon lehetséges:

Tehát a fent ismertetett segítőket valójában git-credential-cache-nek hívják. git-credential-bolt stb. és beállíthatjuk őket, hogy elfogadják a parancssori érveket. A git-credential-foo [args] általános formája . Az I / O protokoll ugyanaz, mint a git-hitelesítő, de enyhén eltérő műveleteket használnak:

kap egy bejelentkezési és jelszó kérést.

tárolja a hitelesítő adatokat az asszisztens memóriájában.

A törlés eltávolítja a megadott paraméterek hitelesítő adatait a segítő által használt memóriából.

A tárolási és törlési műveletek nem igényelnek választ (mindenesetre a Git figyelmen kívül hagyja). A Git számára azonban nagyon fontos, hogy a segítő válaszoljon a műveletre. Ha a segítő nem tud valami hasznosat, akkor csak befejezheti a munkát anélkül, hogy bármilyen információt adna ki, de ha tudja - hozzá kell adnia az információt. A kimenetet a hozzárendelési műveletek sorozata kezeli; A származtatott értékek helyettesítik azokat, amelyeket Git korábban tudott.

Az alábbiakban egy példát használtunk korábban, de a git-credential helyett a git-credential-boltot közvetlenül hívjuk:

A git-credential-store visszaadja a felhasználónevet és a jelszót, amit korábban mentettünk.

Alább található a fájl tartalma

Ez csak egy sor húr, amelyek mindegyike URL-címet tartalmaz, amely hitelesítő adatokat tartalmaz. Az osxkeychain és a winstore segítők a tárolóhelyük alapját képező formátumokat használják, és a gyorsítótár a saját memóriájában tárolja saját tárolási formátumát (amely más folyamatok nem képesek olvasni).

Saját hitelesítő áruház

Figyeljünk csak egy műveletre; tárolni és törölni írási műveletek, ezért nem fogunk semmit tenni, amikor beérkeznek.

A megosztott hitelesítő adatokkal rendelkező fájlformátum megegyezik a git-hitelesítő-tároló formátumával.

A fájl helye többé-kevésbé szabványos, de csak abban az esetben, ha engedélyezzük a felhasználók számára a saját elérési útját.

Itt elemezzük a parancssori argumentumokat, lehetővé téve számunkra, hogy megadjuk a felhasználók számára a bemeneti fájlt. Ez alapértelmezés szerint ez

Ez a program csak akkor válaszol, ha a művelet kap és a tároló fájl létezik.

Ez a hurok elolvassa az áruházfájl tartalmát, és egy keresési találatot hajt végre. Ha az ismert protokoll és kiszolgáló megfelel az aktuális vonalnak, a program kimenetet ad ki és kilép.

Segítségünket git-hitelesítő-csak olvasható módon mentjük el. helyezze az egyik könyvtárba a PATH-ból, és végrehajthatóvá tegye. Az alábbiakban az interakciós munkamenet néz ki:

Mivel a neve "git-" -el kezdődik, egyszerű konfigurációt használhatunk:

Amint látja, a rendszer kibővítése meglehetősen egyszerű, és ez lehetővé teszi, hogy megoldja azokat a gyakori problémákat, amelyeket Ön és csapata lehet.

Kapcsolódó cikkek