Spar tid på å logge på GitHub over SSH ved å bruke passordløs autentisering.

Autentisering med GitHub innebærer vanligvis å bruke et tilgangstoken eller passord. Imidlertid kan disse metodene være upraktiske og usikre, spesielt når du får tilgang til GitHub fra flere enheter.

GitHub gir muligheten til å bruke Secure Shell (SSH) for autentisering. SSH presenterer en sikker nettverksprotokoll for ekstern maskintilgang. Denne funksjonen viser seg spesielt verdifull i situasjoner som krever automatisering eller hyppig ekstern tilgang.

Forstå SSH-autentisering

Autentisering med SSH innebærer bruk av kryptografiske nøkler å etablere en sikker forbindelse (tunnel) mellom en klient (lokal maskin) og en server (GitHub).

Når du bruker SSH for GitHub, genererer en bruker et par SSH-nøkler - en offentlig nøkkel og en privat nøkkel. Den offentlige nøkkelen lastes opp til brukerens GitHub-konto, mens den private nøkkelen forblir trygt lagret på brukerens lokale maskin.

Prosessen kan sammenlignes med konseptet med lås og nøkkel. Den offentlige nøkkelen (låsen) er ment å være åpent delt og sikkert lagret på serversiden. Den fungerer som et motstykke til den private nøkkelen, slik at serveren kan bekrefte identiteten til din lokale maskin. Motsatt fungerer den private nøkkelen (nøkkelen) som en unik identifikator som er lagret utelukkende på din lokale maskin, og muliggjør vellykket autentisering med serveren.

instagram viewer

Under autentisering med GitHub, presenterer din lokale maskin sin private nøkkel som bevis på identitet. Serveren sjekker om den tilsvarende offentlige nøkkelen knyttet til GitHub-kontoen din samsvarer med den gitte private nøkkelen. Hvis nøklene samsvarer, gir serveren tilgang, og etablerer en kryptert og sikkert tilkobling for kommunikasjon.

Sette opp SSH for GitHub

I denne delen vil du se hvordan du setter opp SSH for autentisering med GitHub.

1. Genererer SSH-nøkkelpar

Prosessen med å generere et SSH-nøkkelpar er det første trinnet mot å bruke SSH for autentisering.

  1. Åpne terminalen eller ledeteksten.
  2. Utfør følgende kommando for å generere et nytt SSH-nøkkelpar:
     ssh-keygen -t rsa -b 4096 -C "[email protected]"
  3. Du vil bli bedt om å angi en filplassering for å lagre nøkkelparet. trykk Tast inn for å godta standardplasseringen (~/.ssh/id_rsa) eller spesifisere en egendefinert plassering.
     > Genererer offentlig/privat rsa-nøkkelpar.
     > Skriv inn fil ihvilken for å lagre nøkkelen (/home/vagrant/.ssh/id_rsa):
  4. Deretter vil du bli bedt om å angi en passordfrase. Selv om det er valgfritt, fungerer å legge til en passordfrase som et ekstra sikkerhetsnivå. Pass på at du husker passordfrasen.
     > Skriv inn passordfrase (tom til ingen passordfrase): 
     > Skriv inn samme passordfrase igjen:
  5. Etter å ha generert nøkkelparet, bør du se to filer på den angitte plasseringen. id_rsa (privat nøkkel) og id_rsa.pub (offentlig nøkkel).
     > Identifikasjonen din er lagret i /home/vagrant/.ssh/id_rsa.
     > Din offentlige nøkkel er lagret i /home/vagrant/.ssh/id_rsa.pub.
  6. Når du er ferdig, vises nøklenes fingeravtrykk og tilfeldige bilde.
  7. Til slutt trenger du innholdet i den offentlige nøkkelen for å legge til GitHub. Kjør følgende kommando for å få innholdet:
     katt ~/.ssh/id_rsa.pub

Sørg for å spesifisere banen (~/.ssh/id_rsa.pub i mitt tilfelle) du brukte da du opprettet nøklene.

Kopier innholdet til et trygt og midlertidig sted for senere bruk.

2. Legge til den offentlige nøkkelen til GitHub

Nå som du har generert et SSH-nøkkelpar, må du legge til den offentlige nøkkelen til GitHub-kontoen din.

  1. Logg på GitHub-kontoen din og gå til kontoen din Innstillinger.
  2. Klikk på SSH- og GPG-nøkler plassert på venstre sidefelt.
  3. Klikk på Ny SSH-nøkkel.
  4. Gi SSH-nøkkelen en Tittel.
  5. Lim inn det offentlige nøkkelinnholdet i Nøkkel felt.
  6. Til slutt klikker du på Legg til SSH-nøkkel for å lagre SSH-nøkkelen til GitHub-kontoen din.

Du har eksportert den offentlige nøkkelen til GitHub-kontoen din med disse.

3. Konfigurere en SSH-agent

En SSH-agent er et program som hjelper til med å administrere SSH-nøkler og gir en sikker måte å lagre og bruke dem på. Den fungerer som et mellomledd mellom din lokale maskin og den eksterne serveren under SSH-autentisering. Dette lar deg administrere flere SSH-nøkler for forskjellige GitHub-kontoer.

  1. Sørg for at SSH-agenten kjører.
     $ eval"$(ssh-agent -s)"
     > Agent pid 2757
  2. Legg til den private nøkkelen til SSH-agenten.
     $ ssh-add ~/.ssh/id_rsa
     > Skriv inn passordfrase til /home/vagrant/.ssh/id_rsa:
     > Identitet lagt til: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)

Du har konfigurert en SSH-agent til å administrere nøklene dine.

4. Tester SSH-tilkoblingen

Du kan nå teste for å bekrefte at SSH-tilkoblingen din er riktig konfigurert, og du kan autentisere til GitHub ved hjelp av SSH.

  • Kjør kommandoen nedenfor for å teste SSH-tilkoblingen til GitHub;
     ssh -T [email protected]
    hvis alt går bra vil du se en advarsel angående fingeravtrykket. Bekreft fingeravtrykket og skriv ja å fortsette.
     > Ektheten til verten 'github.com (140.92.130.4)' kanikke etableres.
    > ECDSA-nøkkelfingeravtrykk er SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
    > Er du sikker på at du vil Fortsette kobler til (ja/nei)?
  • Ved skriving ja, vil du se en utgang som ligner på den nedenfor.
     > Advarsel: Permanent lagt til 'github.com, 140.92.130.4' (ECDSA) til listen over kjente verter.
    > Hei princewillingoo! Duhar autentisert, men GitHub gir ikke shell-tilgang.

Dette viser at autentiseringen var vellykket.

Administrere repositories med SSH

Ved å konfigurere SSH kan du administrere depotene dine uten å måtte bekymre deg for problemene med passord og tilgangstokener.

Angir ekstern URL

git fjernkontroll sett-url opprinnelse [email protected]:/.git

Kloning av et depot

git klone [email protected]:/.git

Sender endringer til et depot

git push opprinnelse 

Henter endringer fra et depot

git pull opprinnelse 

Fordeler med SSH over passordautentisering

Bruken av SSH for autentisering gir flere bemerkelsesverdige fordeler i forhold til tradisjonelle passordbaserte autentiseringsmetoder. Dette inkluderer:

  • SSH-autentisering eliminerer behovet for passord, og reduserer risikoen for legitimasjonstyveri.
  • Bruken av kryptografiske nøkler gjør den mer immun mot brute-force angrep sammenlignet med passord.
  • Hvis din private nøkkel er kompromittert, kan du tilbakekalle og erstatte den, noe som gjør den kompromitterte nøkkelen ubrukelig.

Av denne grunn har SSH-autentisering en tendens til å være et bedre alternativ sammenlignet med passordautentisering.

Beste praksis og feilsøking

For å sikre et jevnt og sikkert SSH-oppsett, er det nødvendig å følge beste praksis og være klar over vanlige problemer som kan oppstå og måter å feilsøke dem på.

  1. Angi alltid en passordfrase for å skape et ekstra lag med sikkerhet.
  2. Øv på hyppig nøkkelrotasjon og sikkerhetskopiering.
  3. Bekreft hvert trinn for å unngå tillatelsesfeil eller feil SSH-agentkonfigurasjon.

Ved å følge disse beste fremgangsmåtene kan du trygt bruke SSH-autentisering for GitHub.

Allsidigheten til SSH

SSH er mye brukt i andre områder for å eksternt administrere servere, mikrokontrollere og nettverksenheter da det gir sikker tilgang til kommandolinjegrensesnittet (CLI), som lar brukere utføre forskjellige oppgaver, konfigurere innstillinger, overføre filer og feilsøke problemer.