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
/.git-credentials). A "gyorsítótár" segítő a "timeout" opciót veszi át
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
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.