A duhet të përdorni HTTPS ose SSH për Git?


Kur lidheni me depo të largëta të Git si Github, zakonisht keni dy opsione lidhjeje - HTTPS ose SSH. Të dyja kanë përdorimet e tyre, dhe ndërsa SSH përgjithësisht konsiderohet më i sigurt, pyetja është pak më e ndërlikuar se kaq.

Cili është ndryshimi?

Metoda e vërtetimit që përdorni për t'u lidhur me një depo Git varet nga URL-ja me të cilën është konfiguruar telekomanda juaj. Formati i parazgjedhur i URL-së që përdor Github është HTTPS, i cili komunikon drejtpërdrejt përmes protokollit të internetit:

https://github.com/user/RepoName.git

Megjithatë, ju gjithashtu mund të përdorni SSH. Ndërsa nuk po hapni një guaskë interaktive dhe nuk po ekzekutoni komanda, është ende i njëjti format sikur të lidheshit me një server të rregullt Linux të aktivizuar me SSH:

user@ipaddress:folder/file

Me Github dhe shumicën e shërbimeve, ju lidheni me përdoruesin git dhe hyni në pikën fundore .git si një skedar nën një dosje me emrin tuaj të përdoruesit.

git@github.com:user/RepoName.git

Pse të përdorni HTTPS?

Pra, cilin duhet të përdorni? Ndërsa SSH zakonisht konsiderohet më i sigurt, për përdorimin bazë të Github, vërtetimi HTTPS me një fjalëkalim është mjaft i pranueshëm. Në fakt, vetë Github paracakton dhe rekomandon që shumica e njerëzve të përdorin HTTPS.

Sidoqoftë, nuk është aq e thjeshtë sa dikur - që nga gushti 2021, Github çaktivizoi përdorimin e fjalëkalimit të llogarisë tuaj për të vërtetuar. Do t'ju duhet të krijoni një Token Personal Access, i cili vepron si një fjalëkalim i dytë, por është unik dhe mund t'i jepen leje specifike. Gjithashtu ju lejon të përdorni 2FA në llogarinë tuaj pa asnjë problem.

HTTPS ka shumë avantazhe:

  • HTTPS është më i thjeshtë. Për shumicën e shërbimeve përveç Github, thjesht duhet të futni emrin e përdoruesit dhe fjalëkalimin dhe do të jeni në gjendje të shtyni dhe tërhiqni kodin.
  • Nuk është e nevojshme të mashtroni disa çelësa SSH për të përdorur pajisje të shumta.
  • Port 443, që përdor HTTPS, është i hapur në thelb në çdo mur zjarri që mund të hyjë në internet. Ky nuk është gjithmonë rasti për SSH.

E meta kryesore për shumicën e njerëzve është se duhet të futni fjalëkalimin/tokenin tuaj Git sa herë që shtyni. Ndërsa shtohet në një memorie të fshehtë, nuk është konfiguruar të ruhet përgjithmonë (megjithëse kjo mund të ndryshohet). Me çelësat SSH, ai thjesht përdor skedarin e çelësit në disk çdo herë.

Pse të përdorni SSH?

Është një ide e gabuar që HTTPS si protokoll është dukshëm më pak i sigurt se SSH. Të dyja do t'ju ofrojnë një lidhje të sigurt të sigurt nga sulmet njeri në mes (MITM). Të dy protokollet do ta bëjnë punën e tyre njësoj për sa kohë që çelësat themelorë janë të siguruar. Të dy do të përdorin gjithsesi vërtetimin e bazuar në çelës publik, megjithëse HTTPS me Git do të dërgojë fjalëkalimin tuaj përmes telit. Dhe të dy protokollet mund të konfigurohen që të përdorin gjithashtu vërtetimin me shumë faktorë (MFA/2FA), megjithëse me Github është më e lehtë të përdorni MFA në llogarinë tuaj nëse përdorni çelësat SSH.

Aty ku SSH merr drejtimin është me faktorin e vërtetimit - çelësi. Vetëm gjatësia e tij e bën më të vështirë rrjedhjen aksidentale, dhe për shkak të të qenit i ngathët dhe unik, në përgjithësi është më i sigurt. E vetmja pengesë është se ruhet si një skedar i aksesueshëm nga përdoruesi në hard diskun tuaj dhe jo në kokën tuaj, por duke pasur parasysh sa të këqij janë njerëzit në siguri, ndoshta është më mirë në këtë mënyrë.

Gjithashtu, nuk është i prirur për t'u kapur në një shkelje të të dhënave. Është e garantuar që nuk do të ripërdoret, por gjithashtu nuk ruhet asnjëherë në serverin e dikujt tjetër. Për shkak se ju i jepni Github vetëm çelësin tuaj publik dhe përdorni çelësin tuaj privat në anën tuaj për të kryer sfidën e vërtetimit, nuk ka asnjë rrezik që ai të ekspozohet, apo edhe të dërgohet ndonjëherë përmes telit.

SSH ka shumë dobësi, por ato mund të zbuten nëse e dini se çfarë po bëni:

  • Konfigurimi i llogarisë suaj Github për të përdorur çelësin tuaj SSH kërkon vetëm disa komanda dhe klikime në cilësimet e tyre.
  • Menaxhimi i çelësave të shumëfishtë për kompjuter nuk është i parëndësishëm, por nuk është shumë i vështirë të konfigurohet duke konfiguruar skedarin tuaj të hostit SSH dhe telekomandat Git.
  • Transferimi i çelësave te makineritë e tjera është i mundur, por meqenëse mund të keni disa çelësa SSH, kjo nuk është e nevojshme.

SSH madje mund të tunelezohet mbi HTTPS kur hyni në Github, duke përdorur ssh.github.com emrin e hostit në konfigurimin tuaj SSH. Ndërsa kjo mund të mos jetë e vërtetë për të gjitha shërbimet Git, është një plus i mirë për atë të madh:

Host github.com
  Hostname ssh.github.com
  Port 443

Çelësat SSH gjithashtu mund të lidhen me zinxhirë së bashku duke përdorur përcjelljen e agjentit SSH, i cili ju lejon të lidheni me një server në distancë dhe më pas të përdorni çelësin SSH në kompjuterin tuaj të klientit për të vërtetuar. Serveri në distancë vepron si ndërmjetësi, i pavetëdijshëm për çelësin tuaj SSH.

Çfarë duhet të përdorni?

Pyetja është, a duhet të shqetësoheni me të? Nëse keni përvojë me një linjë komande, nuk është shumë e vështirë të përdorni thjesht çelësat, dhe shumica e njerëzve do ta bëjnë gjithsesi thjesht sepse është më e lehtë të konfigurosh një herë dhe të mos futësh më një fjalëkalim. Gjithashtu funksionon më mirë me 2FA, të cilin shumica e llogarive Github me siguri të lartë ka të ngjarë të përdorin.

Nëse thjesht po kërkoni një përvojë të lehtë, HTTPS është i sigurt për sa kohë që fjalëkalimi juaj është i sigurt. Ekziston një arsye pse Github e ka atë të paracaktuar dhe madje e rekomandon atë - funksionon mirë dhe është i lehtë për t'u kuptuar.