Si të kaloni një depo Github në Autentifikimin SSH
Github ofron dy mënyra për të vërtetuar me depon tuaj-nëpërmjet HTTPS me një fjalëkalim dhe mbi SSH duke përdorur çelësa privatë. Ndërsa të dyja funksionojnë mirë, nëse doni të kaloni, do t'ju duhet të konfiguroni depon tuaj lokale për të përdorur kredencialet e reja.
Kalimi në vërtetimin SSH
Github paracakton vërtetimin HTTPS, duke përdorur fjalëkalimin për llogarinë tuaj Github. Sa herë që shkoni për të klonuar një depo, do të duhet të zgjidhni manualisht SSH si opsion për URL-në e klonimit nëse preferoni ta përdorni atë.
Ndërsa SSH është shpesh më i miri për vërtetimin e lidhjeve me serverët Linux, Github rekomandon HTTPS sepse është i lehtë për njerëzit dhe shkakton më pak konfuzion. Sidoqoftë, është më keq për automatizimin, jo teknikisht aq i sigurt sa një çelës RSA dhe mund të jetë një bezdi ta shtypësh atë çdo herë, edhe me ruajtjen e kredencialeve.
Kalimi është shumë i thjeshtë - do t'ju duhet të krijoni një çelës të ri SSH nëse nuk e keni, ta shtoni atë në llogarinë tuaj dhe më pas të ndërroni depon tuaj lokale në pikën e re përfundimtare nëse e keni klonuar tashmë.
Së pari, kontrolloni nëse keni tashmë një çelës SSH. E parazgjedhura juaj zakonisht ruhet këtu në Linux/macOS:
cat ~/.ssh/id_rsa.pub
Në Windows, kjo varet nga programi që po përdorni. Ndonjëherë ruhet në %HOMEDRIVE%%HOMEPATH%.ssh
, por mund të jetë i ndryshëm në bazë të asaj nga e cila po përdorni Git. Në shumicën e rasteve, ne rekomandojmë përdorimin e Windows Subsystem For Linux (WSL) i cili funksionon si një VM dhe ruan çelësin në një mjedis tradicional Linux.
Nëse nuk keni një të tillë, mund ta bëni me ssh-keygen
:
ssh-keygen -t rsa -f ~/.ssh/id_rsa
Pasi të keni çelësin, shkoni te cilësimet tuaja të përdoruesit të Github nën Çelësat SSH dhe GPG dhe ngjisni përmbajtjen e id_rsa.pub
në një çelës të ri.
Pasi të keni mbaruar, duhet të vërtetoheni, me kusht që Git të jetë konfiguruar për të përdorur këtë çelës.
Ndërrimi i një repo HTTPS në vërtetimin SSH
Nëse keni klonuar nga Github duke përdorur HTTPS, depoja juaj do të jetë tashmë e lidhur me Github duke përdorur atë URL të largët. Për ta rregulluar këtë, do t'ju duhet të hiqni telekomandën HTTPS, të quajtur zakonisht origjina
, dhe ta shtoni përsëri me git@github
URI-në e duhur që përdor SSH.
git remote rm origin
git remote add origin git@github.com:user/repo.git
Më pas shtyjeni në origjinë si zakonisht:
git fetch origin
git push --set-upstream origin/master
Nëse po klononi një depo të re, thjesht do t'ju duhet të siguroheni që ajo të jetë vendosur në SSH në të ardhmen dhe që URI të konfigurohet si git@github.com
.
Përdorimi i një çelësi të ndryshëm SSH
Nëse keni shumë çelësa SSH që duhet të përdorni, gjërat mund të ndërlikohen, kjo është arsyeja pse Github rekomandon fjalëkalime për të sapoardhurit. Thuaj se e klononi depon në desktop, por më pas dëshironi të punoni nga laptopi juaj. Ju ose do të duhet të shtoni një çelës të ri në llogarinë tuaj Github, ose ta transferoni çelësin në laptop.
Nëse mundeni, duhet të shtoni një çelës të ri. Github mbështet shumë prej tyre për një arsye, dhe ju mund t'u jepni emra të ndryshëm për t'i organizuar ato. Megjithatë, ndonjëherë, do të keni vetëm një çelës dhe duhet t'i rregulloni gjërat nga ana e klientit.
Nëse thjesht dëshironi të përdorni të njëjtin çelës, është mirë të transferoni id_rsa
dhe id_rsa.pub
në makinën e re. Por, nëse ajo makinë tashmë ka çelësin e saj SSH, do t'ju duhet të përdorni çelësa të shumtë.
Ju mund ta bëni këtë duke redaktuar skedarin e konfigurimit të hosteve të SSH:
nano ~/.ssh/config
Shtoni dy blloqe me emra të ndryshëm. Në këtë rast përdorimi, është duke vendosur çelësa të ndryshëm për një llogari personale kundrejt një llogarie kompanie.
Host personal
Hostname github.com
IdentityFile ~/.ssh/githubpersonal
IdentitiesOnly yes
Host work
Hostname github.com
IdentityFile ~/.ssh/githubwork
IdentitiesOnly yes
Do t'ju duhen dy çelësa të quajtur githubpersonal.pub
dhe githubwork.pub
, ose çfarëdo emrash që zgjidhni t'u jepni atyre. Së fundmi, do t'ju duhet të hiqni përsëri telekomandën dhe ta shtoni përsëri, duke specifikuar emrin e bllokut në skedarin e konfigurimit të hostit (i cili mund të mos përputhet me emrin e çelësit):
git remote rm origin
git remote add origin git@personal:username/repository.git
Në këtë komandë, personal po zëvendëson emrin e hostit, github.com
, në URL. Arsyeja pse kjo është e nevojshme është sepse konfigurimi i SSH paracakton zgjedhjen e një çelësi bazuar në emrin e hostit, i cili si në blloqet personal
dhe work
është vetëm github.com. Duhet të specifikoni manualisht në mënyrë që Git të zgjedhë atë të duhurin.