Ինչպե՞ս շտկել Git-ը, երբ միշտ օգտատերերի հավատարմագրեր են խնդրում HTTP(S) իսկորոշման համար:


Ներածություն

Git-ը բաշխված տարբերակի կառավարման համակարգ է, որը թույլ է տալիս ծրագրավորողներին հետևել և կառավարել իրենց կոդի փոփոխությունները: Այն ստեղծվել է Լինուս Տորվալդսի կողմից, նույն մարդը, ով ստեղծել է Linux օպերացիոն համակարգը։

Git-ը դարձել է ժամանակակից ծրագրային ապահովման զարգացման կարևոր գործիք՝ մեծ կոդերի բազաները կառավարելու, թիմերի միջև համագործակցությունը հեշտացնելու և փոփոխությունների պատմություն պահպանելու ունակության շնորհիվ: Git-ը ծրագրավորողներին թույլ է տալիս միաժամանակ աշխատել իրենց կոդի մի քանի տարբերակների վրա՝ առանց անհանգստանալու կոնֆլիկտների կամ առաջընթացի կորստի մասին:

Սա ձեռք է բերվում Git-ում ճյուղավորվող և միաձուլվող գործառույթների օգտագործման միջոցով: Մասնաճյուղը թույլ է տալիս ծրագրավորողներին ստեղծել իրենց կոդի առանձին տարբերակներ՝ առանց հիմնական ճյուղի վրա ազդելու, մինչդեռ միաձուլումը անխափան կերպով միավորում է տարբեր ճյուղերը։

HTTP(S) իսկությունը և դրա դերը Git-ի օգտագործման մեջ

Git-ի միջոցով հեռավոր պահոցների հետ փոխազդելու համար հաճախ պահանջվում է HTTP(S) նույնականացում: Նույնականացման այս գործընթացը ներառում է օգտատիրոջ հավատարմագրերը (օրինակ՝ օգտվողի անունը և գաղտնաբառը) ուղարկելը HTTPS-ի միջոցով՝ հեռավոր պահոց հարցումներ կատարելիս:

Նույնականացումը կարևոր է պահեստների անվտանգության և մուտքի վերահսկման համար: Առանց նույնականացման համապատասխան միջոցների, ցանկացած ոք կարող է պոտենցիալ չարտոնված փոփոխություններ կատարել կամ դիտել զգայուն տեղեկատվությունը պահոցում:

Խնդրի հայտարարություն. Git-ը միշտ խնդրում է օգտվողի հավատարմագրեր՝ HTTP(S) իսկորոշման համար

Մեկ ընդհանուր խնդիր, որին օգտատերերը հանդիպում են Git-ում հեռավոր պահոցների հետ աշխատելիս, անընդհատ հուշում է օգտատերերի հավատարմագրերը ամեն անգամ, երբ նրանք փորձում են HTTPS հարցում կատարել: Սա կարող է հիասթափեցնող և ժամանակատար լինել, հատկապես, եթե դուք աշխատում եք բազմաթիվ պահեստների վրա կամ հաճախակի հարցումներ եք անում:

Այս սխալի առաջացման մի քանի պատճառ կա՝ սկսած սխալ կազմաձևման կարգավորումներից մինչև ժամկետանց կամ անվավեր հավատարմագրեր: Բարեբախտաբար, կան մի քանի պարզ լուծումներ, որոնք կարող են օգնել ձեզ լուծել այս խնդիրը և առանց ընդհատումների վերադառնալ կոդավորմանը:

Հասկանալով Հարցը

Ինչպես է Git-ն իրականացնում նույնականացումը HTTP(S) հարցումների համար

Git-ը տարբերակի կառավարման հայտնի համակարգ է, որն օգտագործվում է մշակողների կողմից՝ կառավարելու և հետևելու իրենց կոդի բազայի փոփոխություններին: Git-ն օգտագործելիս սովորական է շփվել սերվերի վրա տեղակայված հեռավոր պահեստների հետ, ինչպիսիք են GitHub-ը կամ Bitbucket-ը:

Այս պահոցները կարելի է մուտք գործել HTTP կամ HTTPS արձանագրությունների միջոցով, որոնք պահանջում են նույնականացում նախքան որևէ գործողություն կատարելը: Git-ն իրականացնում է HTTP(S) հարցումների իսկությունը՝ յուրաքանչյուր հարցումով հավատարմագրերն ուղարկելով օգտվողի անվան և գաղտնաբառի տեսքով:

Երբ այս հավատարմագրերը ստուգվում են, Git-ը թույլ է տալիս մուտք գործել հեռավոր պահեստ: Այնուամենայնիվ, եթե հավատարմագրերը վավեր չեն կամ ժամկետանց են, Git-ը օգտվողին կհուշի նորից մուտքագրել իր հավատարմագրերը:

Խնդրի ընդհանուր պատճառները

Git-ի կողմից HTTP(S) նույնականացման համար օգտագործողի հավատարմագրերը միշտ խնդրելու ընդհանուր պատճառներից մեկը սխալ կազմաձևված հեռավոր պահեստի URL-ն է: Եթե URL-ը սխալ է կամ վերջին անգամ օգտագործվելուց հետո փոխվել է, Git-ը չի կարողանա ճիշտ նույնականացնել և կհուշի նոր հավատարմագրեր:

Մյուս հնարավոր պատճառն անվավեր կամ ժամկետանց հավատարմագրերն են: Օրինակ, եթե օգտվողի գաղտնաբառը թարմացվել է սերվերի կողմից, բայց ոչ նրա տեղական Git-ի կազմաձևման կարգավորումներում, ապա նրան անընդհատ կպահանջվի իրենց հին գաղտնաբառը:

Նմանապես, եթե օգտատիրոջ հաշիվն ապաակտիվացվել կամ ջնջվել է սերվերի կողմից, բայց դեռ գոյություն ունի նրանց տեղական կարգավորումներում, նրանք կարող են նույնականացման հետ կապված խնդիրներ ունենալ: Որոշ օպերացիոն համակարգերի կամ ցանցի կոնֆիգուրացիաների հետ անհամատեղելիությունը կարող է նաև նույնականացման հետ կապված խնդիրներ առաջացնել:

Օրինակ, որոշ firewalls կարող են արգելափակել ելքային տրաֆիկը որոշակի նավահանգիստներից, որոնք Git-ն օգտագործում է HTTP(S) հարցումների համար: Բացի այդ, որոշ օպերացիոն համակարգեր կարող են չաջակցել Git-ի կողմից օգտագործվող գաղտնագրման որոշ մեթոդների՝ HTTPS միացումների միջոցով գաղտնաբառերի փոխանցման ժամանակ:

Լուծում 1. Հեռակա պահեստի URL-ի թարմացում

Ամենապարզ ուղղումը, որը կարող է աշխատել

Առաջին լուծումը, որը մենք կքննարկենք, հեռավոր պահեստի URL-ի թարմացումն է: Այս լուծումը կիրառելի է, երբ խնդիրը պայմանավորված է նրանով, որ Git-ը չի կարողանում նույնականացնել հեռավոր պահոցով սխալ կամ հնացած URL-ի պատճառով: URL-ի թարմացումը պետք է թույլ տա Git-ին նույնականացնել հեռավոր պահոցով՝ առանց օգտվողի հավատարմագրերը խնդրելու:

Հեռավոր պահոցի URL-ը թարմացնելու համար կարող եք օգտագործել Git-ի կազմաձևման հրամանը կամ --գլոբալ կամ --local տարբերակով, կախված նրանից, թե արդյոք ցանկանում եք թարմացնել URL-ը գլոբալ կամ տեղական որոշակի պահոցի համար: Հրամանը կլինի այս ձևաչափով

git config [--global | --local] remote.origin.url new-url 

Այս հրամանի միջոցով URL-ը թարմացնելուց հետո կարող եք ստուգել, որ այն աշխատում է այնպես, ինչպես սպասվում էր՝ փորձելով մուտք գործել հեռավոր պահեստ՝ օգտագործելով Git հրամանները, ինչպիսիք են fetch կամ pull:

Եթե նույնականացումը հաջողվում է առանց օգտատիրոջ հավատարմագրերի պահանջի, ապա շնորհավորում ենք: Դուք շտկել եք խնդիրը:

Լուծում 2. Հավատարմագրերի քեշավորում Credential Helper-ով

Ժամանակի խնայողություն, առանց մտածելու լուծում

Երկրորդ լուծումը, որը մենք կքննարկենք, ներառում է օգտատերերի հավատարմագրերի քեշավորումը ձեր մեքենայի վրա՝ օգտագործելով Git-ի հավատարմագրերի օգնականը: Այս լուծումը լավ է աշխատում, եթե դուք հաճախ շփվում եք հեռավոր պահոցի հետ, որն օգտագործում է HTTP(S) իսկությունը և չեք ցանկանում ամեն անգամ շարունակել մուտքագրել ձեր օգտանունն ու գաղտնաբառը:

Git-ի հավատարմագրերի օգնականը տրամադրում է ձեր հավատարմագրերը պահելու եղանակ, որպեսզի դրանք ավտոմատ կերպով օգտագործվեն, երբ դուք փոխազդում եք որոշակի սերվերի հետ: Օգնականն աշխատում է՝ ձեր հավատարմագրերը պահելով գաղտնագրված ֆայլում ձեր տեղական մեքենայի վրա, որպեսզի դրանք կարողանան ավտոմատ կերպով առբերվել, երբ պահանջվի:

Հավատարմագրերի օգնականը ձեր մեքենայի վրա հավատարմագրերը պահելու համար միացնելու համար դուք պետք է գործարկեք այս հրամանը.

git config [--global | --local] credential.helper cache 

Սա հնարավորություն կտա հավատարմագրերի քեշավորումը գլոբալ (բոլոր պահոցների համար), եթե օգտագործեք --global տարբերակը: Եթե դուք ընտրում եք օգտագործել --local տարբերակը, ապա հավատարմագրերի քեշավորումը կակտիվացվի միայն տեղում (կոնկրետ պահեստի համար):

Միացնելուց հետո Git-ը կպահի ձեր հավատարմագրերը 15 րոպե կանխադրված ժամկետով: Դուք կարող եք փոխել այս ժամանակահատվածը՝ օգտագործելով --timeout տարբերակն այսպես −

git config [--global | --local] credential.helper 'cache --timeout=3600' 

Այս հրամանը սահմանում է ժամանակի վերջը մեկ ժամ (3600 վայրկյան), որից հետո Git-ը ձեզ նորից կհուշի ձեր հավատարմագրերը:

Լուծում 3. Անձնական մուտքի նշանների ստեղծում (PAT)

Առավել անվտանգ լուծում, որն առաջարկում է ավելի շատ վերահսկողություն

Երրորդ լուծումը, որը մենք կքննարկենք, անձնական մուտքի նշանների (PAT) ստեղծումն է: Այս լուծումը խորհուրդ է տրվում, երբ գաղտնաբառի նույնականացումը չափազանց ռիսկային եք համարում և ցանկանում եք ավելի շատ վերահսկել, թե ինչպես է Git-ը համագործակցում HTTP(S) նույնականացում օգտագործող հեռավոր պահոցների հետ:

PAT-ները Git-ի հետ նույնականացման ժամանակ գաղտնաբառերի օգտագործման այլընտրանքն են: Նրանք ապահովում են նույնականացման ավելի ապահով եղանակ, քանի որ դրանք կարող են ստեղծվել հատուկ թույլտվություններով և ժամկետանց ամսաթվերով:

Անձնական մուտքի նշան ստեղծելու համար դուք պետք է մուտք գործեք ձեր Git մատակարարի կայք և հետևեք նրանց հրահանգներին, թե ինչպես ստեղծել այն: Օրինակ, եթե օգտվում եք GitHub-ից, անցեք ձեր հաշվի կարգավորումները, ձախ կողագոտու ընտրացանկից ընտրեք «Developer settings» և ընտրեք «Personal access tokens»:

Այնտեղից կտտացրեք «Ստեղծեք նոր նշան» կոճակը և հետևեք հրահանգներին: Երբ դուք ստեղծեք PAT, կարող եք օգտագործել այն HTTP(S) նույնականացման համար՝ փոխարինելով ձեր գաղտնաբառը դրանով ցանկացած Git հրամանում, որը պահանջում է հիմնական նույնականացում:

Եզրակացություն

HTTP(S) նույնականացումն օգտագործելիս օգտատերերի հավատարմագրերի վերաբերյալ Git-ի մշտական հարցումները շտկելը ներառում է ի սկզբանե խնդրի առաջացման պատճառների ըմբռնումը և ձեր կարիքների համար լավագույն լուծումը: Հեռավոր պահոցի URL-ի թարմացումը պարզ է, բայց երբեմն այն ամենը, ինչ անհրաժեշտ է. քեշի հավատարմագրերը հավատարմագրման օգնականով խնայում է ձեր ժամանակը. և անձնական մուտքի նշաններ ստեղծելն ամենաապահովն է և առաջարկում է ավելի շատ վերահսկողություն: Անկախ նրանից, թե որ մոտեցումն եք ընտրում, այս խնդրի շտկումը մեծապես կբարձրացնի ձեր արտադրողականությունը Git-ի հետ աշխատելիս: