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-ի օգտագործման համար:

  1. Բացեք ձեր տերմինալը կամ հրամանի տողը:
  2. Նոր SSH բանալիների զույգ ստեղծելու համար կատարեք հետևյալ հրամանը.

     ssh-keygen -t rsa -b 4096 -C "youremail@domain.com"
    
  3. Ձեզ կառաջարկվի մուտքագրել ֆայլի գտնվելու վայրը՝ բանալիների զույգը պահպանելու համար: Սեղմեք Enter՝ լռելյայն տեղադրությունն ընդունելու համար (~/.ssh/id_rsa) կամ նշեք հատուկ տեղադրություն:

     > Generating public/private rsa key pair.
     > Enter file in which to save the key (/home/vagrant/.ssh/id_rsa):
    
  4. Հաջորդը, ձեզանից կպահանջվի մուտքագրել անցաբառ: Չնայած ընտրովի, անցաբառի ավելացումը ծառայում է որպես անվտանգության լրացուցիչ մակարդակ: Համոզվեք, որ հիշում եք ձեր անցաբառը:

     > Enter passphrase (empty for no passphrase): 
     > Enter same passphrase again:
    
  5. Բանալիների զույգը ստեղծելուց հետո դուք պետք է տեսնեք երկու ֆայլ նշված վայրում: 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.
    
  6. Ավարտելուց հետո ցուցադրվում են ստեղների մատնահետքը և պատահական պատկերը:
  7. Վերջապես, GitHub-ին ավելացնելու համար ձեզ անհրաժեշտ կլինի հանրային բանալու բովանդակությունը: Բովանդակությունը ստանալու համար գործարկեք հետևյալ հրամանը.

     cat ~/.ssh/id_rsa.pub
    

Համոզվեք, որ նշել եք այն ուղին (~/.ssh/id_rsa.pub իմ դեպքում), որը դուք օգտագործել եք բանալիները ստեղծելիս:

Պատճենեք բովանդակությունը անվտանգ և ժամանակավոր վայրում՝ հետագայում օգտագործելու համար:

2. Հանրային բանալի ավելացում GitHub-ում

Այժմ, երբ դուք ստեղծել եք SSH բանալիների զույգ, դուք պետք է ավելացնեք հանրային բանալին ձեր GitHub հաշվին:

  1. Մուտք գործեք ձեր GitHub հաշիվ և անցեք ձեր հաշվի Կարգավորումներ:
  2. Սեղմեք SSH և GPG ստեղները, որը գտնվում է ձախ կողագոտում:

  3. Սեղմեք Նոր SSH բանալի:
  4. Ձեր SSH բանալիին տվեք Վերնագիր:
  5. Տեղադրեք հանրային բանալու բովանդակությունը Բանալին դաշտում:

  6. Վերջապես, սեղմեք Ավելացնել SSH բանալի՝ SSH բանալին ձեր GitHub հաշվում պահելու համար:

Դուք հաջողությամբ արտահանել եք հանրային բանալին ձեր GitHub հաշիվ դրանց միջոցով:

3. SSH գործակալի կազմաձևում

SSH գործակալը ծրագիր է, որն օգնում է կառավարել SSH ստեղները և ապահովում է դրանք պահելու և օգտագործելու անվտանգ միջոց: Այն հանդես է գալիս որպես միջնորդ ձեր տեղական մեքենայի և հեռավոր սերվերի միջև SSH նույնականացման ժամանակ: Սա թույլ է տալիս կառավարել բազմաթիվ SSH ստեղներ տարբեր GitHub հաշիվների համար:

  1. Համոզվեք, որ SSH գործակալն աշխատում է:

     $ eval "$(ssh-agent -s)"
     > Agent pid 2757
    
  2. Ավելացնել անձնական բանալին 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-ի սահուն և անվտանգ կարգավորումն ապահովելու համար անհրաժեշտ է հետևել լավագույն փորձին և տեղյակ լինել ընդհանուր խնդիրների մասին, որոնք կարող են առաջանալ և դրանց վերացման ուղիները:

  1. Միշտ սահմանեք անցաբառ՝ անվտանգության լրացուցիչ շերտ ստեղծելու համար:
  2. Զբաղվեք բանալիների հաճախակի պտտմամբ և կրկնօրինակումներով:
  3. Հաստատեք յուրաքանչյուր քայլ՝ թույլտվության սխալներից կամ SSH գործակալի սխալ կազմաձևումից խուսափելու համար:

Հավատարիմ մնալով այս լավագույն փորձին, դուք կարող եք վստահորեն օգտագործել SSH նույնականացումը GitHub-ի համար:

SSH-ի բազմակողմանիությունը

SSH-ը լայնորեն օգտագործվում է այլ ոլորտներում՝ սերվերների, միկրոկառավարիչների և ցանցային սարքերի հեռակառավարման համար, քանի որ այն թույլ է տալիս անվտանգ մուտք գործել հրամանի տող ինտերֆեյս (CLI)՝ հնարավորություն տալով օգտվողներին կատարել տարբեր առաջադրանքներ, կարգավորել կարգավորումները, փոխանցել ֆայլերը և լուծել խնդիրները: