SSH-ի օգտագործումը GitHub առանց գաղտնաբառի նույնականացման համար
Խնայեք ժամանակ SSH-ի միջոցով GitHub մուտք գործելիս՝ օգտագործելով առանց գաղտնաբառի իսկությունը:
GitHub-ի հետ նույնականացումը սովորաբար ներառում է մուտքի նշանի կամ գաղտնաբառի օգտագործումը: Այնուամենայնիվ, այս մեթոդները կարող են անհարմար և անապահով լինել, հատկապես, երբ մի քանի սարքերից մուտք գործեք GitHub:
GitHub-ը հնարավորություն է տալիս օգտագործել Secure Shell (SSH) նույնականացման համար: SSH-ը ներկայացնում է անվտանգ ցանցային արձանագրություն հեռավոր մեքենայի մուտքի համար: Այս հատկությունը հատկապես արժեքավոր է այն իրավիճակներում, որոնք պահանջում են ավտոմատացում կամ հաճախակի հեռահար մուտք:
Հասկանալով SSH նույնականացումը
SSH-ով նույնականացումը ներառում է ծածկագրային բանալիների օգտագործում՝ հաճախորդի (տեղական մեքենայի) և սերվերի (GitHub) միջև անվտանգ կապ (թունել) հաստատելու համար:
GitHub-ի համար SSH օգտագործելիս օգտատերը ստեղծում է զույգ SSH ստեղներ՝ հանրային և մասնավոր բանալի: Հանրային բանալին վերբեռնվում է օգտատիրոջ GitHub հաշվում, մինչդեռ մասնավոր բանալին ապահով կերպով պահվում է օգտատիրոջ տեղական մեքենայի վրա:
Գործընթացը կարելի է համեմատել կողպեքի և բանալի հասկացության հետ: Հանրային բանալին (կողպեքը) նախատեսված է բաց համօգտագործման և սերվերի կողմից ապահով պահվելու համար: Այն ծառայում է որպես մասնավոր բանալիի գործընկեր՝ հնարավորություն տալով սերվերին ստուգել ձեր տեղական մեքենայի ինքնությունը: Ընդհակառակը, մասնավոր բանալին (բանալին) գործում է որպես եզակի նույնացուցիչ, որը պահվում է բացառապես ձեր տեղական մեքենայի վրա՝ հնարավորություն տալով հաջող նույնականացում սերվերի հետ:
GitHub-ի հետ նույնականացման ժամանակ ձեր տեղական մեքենան ներկայացնում է իր անձնական բանալին որպես ինքնության ապացույց: Սերվերը ստուգում է, թե արդյոք համապատասխան հանրային բանալին, որը կապված է ձեր GitHub հաշվի հետ, համապատասխանում է տվյալ մասնավոր բանալիին: Եթե ստեղները համընկնում են, սերվերը թույլ է տալիս մուտք գործել՝ ստեղծելով գաղտնագրված և անվտանգ կապ հաղորդակցության համար:
SSH-ի կարգավորում GitHub-ի համար
Այս բաժնում դուք կտեսնեք, թե ինչպես կարգավորել SSH-ը նույնականացման համար GitHub-ով:
1. SSH բանալիների զույգի ստեղծում
SSH բանալիների զույգ ստեղծելու գործընթացը առաջին քայլն է նույնականացման համար SSH-ի օգտագործման համար:
- Բացեք ձեր տերմինալը կամ հրամանի տողը:
Նոր SSH բանալիների զույգ ստեղծելու համար կատարեք հետևյալ հրամանը.
ssh-keygen -t rsa -b 4096 -C "youremail@domain.com"
Ձեզ կառաջարկվի մուտքագրել ֆայլի գտնվելու վայրը՝ բանալիների զույգը պահպանելու համար: Սեղմեք Enter՝ լռելյայն տեղադրությունն ընդունելու համար (~/.ssh/id_rsa) կամ նշեք հատուկ տեղադրություն:
> Generating public/private rsa key pair. > Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):
Հաջորդը, ձեզանից կպահանջվի մուտքագրել անցաբառ: Չնայած ընտրովի, անցաբառի ավելացումը ծառայում է որպես անվտանգության լրացուցիչ մակարդակ: Համոզվեք, որ հիշում եք ձեր անցաբառը:
> Enter passphrase (empty for no passphrase): > Enter same passphrase again:
Բանալիների զույգը ստեղծելուց հետո դուք պետք է տեսնեք երկու ֆայլ նշված վայրում: id_rsa (մասնավոր բանալի) և id_rsa.pub (հանրային բանալի):
> Your identification has been saved in /home/vagrant/.ssh/id_rsa. > Your public key has been saved in /home/vagrant/.ssh/id_rsa.pub.
- Ավարտելուց հետո ցուցադրվում են ստեղների մատնահետքը և պատահական պատկերը:
Վերջապես, GitHub-ին ավելացնելու համար ձեզ անհրաժեշտ կլինի հանրային բանալու բովանդակությունը: Բովանդակությունը ստանալու համար գործարկեք հետևյալ հրամանը.
cat ~/.ssh/id_rsa.pub
Համոզվեք, որ նշել եք այն ուղին (~/.ssh/id_rsa.pub իմ դեպքում), որը դուք օգտագործել եք բանալիները ստեղծելիս:
Պատճենեք բովանդակությունը անվտանգ և ժամանակավոր վայրում՝ հետագայում օգտագործելու համար:
2. Հանրային բանալի ավելացում GitHub-ում
Այժմ, երբ դուք ստեղծել եք SSH բանալիների զույգ, դուք պետք է ավելացնեք հանրային բանալին ձեր GitHub հաշվին:
- Մուտք գործեք ձեր GitHub հաշիվ և անցեք ձեր հաշվի Կարգավորումներ:
Սեղմեք SSH և GPG ստեղները, որը գտնվում է ձախ կողագոտում:
- Սեղմեք Նոր SSH բանալի:
- Ձեր SSH բանալիին տվեք Վերնագիր:
Տեղադրեք հանրային բանալու բովանդակությունը Բանալին դաշտում:
Վերջապես, սեղմեք Ավելացնել SSH բանալի՝ SSH բանալին ձեր GitHub հաշվում պահելու համար:
Դուք հաջողությամբ արտահանել եք հանրային բանալին ձեր GitHub հաշիվ դրանց միջոցով:
3. SSH գործակալի կազմաձևում
SSH գործակալը ծրագիր է, որն օգնում է կառավարել SSH ստեղները և ապահովում է դրանք պահելու և օգտագործելու անվտանգ միջոց: Այն հանդես է գալիս որպես միջնորդ ձեր տեղական մեքենայի և հեռավոր սերվերի միջև SSH նույնականացման ժամանակ: Սա թույլ է տալիս կառավարել բազմաթիվ SSH ստեղներ տարբեր GitHub հաշիվների համար:
Համոզվեք, որ SSH գործակալն աշխատում է:
$ eval "$(ssh-agent -s)" > Agent pid 2757
Ավելացնել անձնական բանալին SSH գործակալին:
$ ssh-add ~/.ssh/id_rsa > Enter passphrase for /home/vagrant/.ssh/id_rsa: > Identity added: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)
Դուք հաջողությամբ կարգավորել եք SSH գործակալը՝ ձեր բանալիները կառավարելու համար:
4. SSH կապի փորձարկում
Այժմ կարող եք ստուգել՝ ստուգելու համար, որ ձեր SSH կապը ճիշտ է ստեղծվել, և կարող եք նույնականացնել GitHub-ում՝ օգտագործելով SSH:
Գործարկեք ստորև նշված հրամանը՝ SSH կապը GitHub-ին փորձարկելու համար.
ssh -T git@github.com
> The authenticity of host 'github.com (140.92.130.4)' can't be established. > ECDSA key fingerprint is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM. > Are you sure you want to continue connecting (yes/no)?
Մուտքագրելով այո, դուք կտեսնեք ստորև բերվածի նման արդյունք:
> Warning: Permanently added 'github.com,140.92.130.4' (ECDSA) to the list of known hosts. > Hi princewillingoo! You've successfully authenticated, but GitHub does not provide shell access.
Սա ցույց է տալիս, որ նույնականացումը հաջող է եղել:
Պահեստների կառավարում SSH-ով
SSH-ի կազմաձևումը թույլ է տալիս կառավարել ձեր պահեստները՝ առանց անհանգստանալու գաղտնաբառերի և մուտքի նշանների խնդիրների մասին:
Հեռակա URL-ի կարգավորում
git remote set-url origin git@github.com:<username>/<repository>.git
Պահեստի կլոնավորում
git clone git@github.com:<username>/<repository>.git
Փոփոխությունների մղում պահոց
git push origin <branch>
Փոփոխությունների դուրսբերում պահոցից
git pull origin <branch>
SSH-ի առավելությունները գաղտնաբառի նույնականացման նկատմամբ
Նույնականացման համար SSH-ի օգտագործումը մի քանի ուշագրավ առավելություններ է տալիս գաղտնաբառի վրա հիմնված նույնականացման ավանդական մեթոդների համեմատ: Սա ներառում է.
- SSH նույնականացումը վերացնում է գաղտնաբառերի անհրաժեշտությունը՝ նվազեցնելով հավատարմագրերի գողության վտանգը:
- Կրիպտոգրաֆիկ բանալիների օգտագործումը գաղտնաբառերի համեմատ ավելի անձեռնմխելի է դարձնում կոպիտ ուժային հարձակումներից:
- Եթե ձեր անձնական բանալին վտանգված է, կարող եք հետ կանչել և փոխարինել այն՝ վտանգված բանալին անօգուտ դարձնելով:
Այս պատճառով, SSH նույնականացումը ավելի լավ տարբերակ է գաղտնաբառի նույնականացման համեմատ:
Լավագույն պրակտիկա և անսարքությունների վերացում
SSH-ի սահուն և անվտանգ կարգավորումն ապահովելու համար անհրաժեշտ է հետևել լավագույն փորձին և տեղյակ լինել ընդհանուր խնդիրների մասին, որոնք կարող են առաջանալ և դրանց վերացման ուղիները:
- Միշտ սահմանեք անցաբառ՝ անվտանգության լրացուցիչ շերտ ստեղծելու համար:
- Զբաղվեք բանալիների հաճախակի պտտմամբ և կրկնօրինակումներով:
- Հաստատեք յուրաքանչյուր քայլ՝ թույլտվության սխալներից կամ SSH գործակալի սխալ կազմաձևումից խուսափելու համար:
Հավատարիմ մնալով այս լավագույն փորձին, դուք կարող եք վստահորեն օգտագործել SSH նույնականացումը GitHub-ի համար:
SSH-ի բազմակողմանիությունը
SSH-ը լայնորեն օգտագործվում է այլ ոլորտներում՝ սերվերների, միկրոկառավարիչների և ցանցային սարքերի հեռակառավարման համար, քանի որ այն թույլ է տալիս անվտանգ մուտք գործել հրամանի տող ինտերֆեյս (CLI)՝ հնարավորություն տալով օգտվողներին կատարել տարբեր առաջադրանքներ, կարգավորել կարգավորումները, փոխանցել ֆայլերը և լուծել խնդիրները: