Hvordan konfigurere passordløs autentisering til GitHub Private Repository?

Gjentakelse av samme oppgave er kjedelig og smertefullt for programmerere som oss. Ikke sant?

En av slike oppgaver er interaktiv med GitHubs private depot. Hva er det med det? Du vet hva det er. Og du leter etter måter å løse det på og havnet på denne artikkelen. Du slutter å søke etter å ha lest denne artikkelen.

Så, her skal vi snakke om tilgang til GitHub private repository uten passord. Uten videre, la oss komme i gang.

Det er to måter å få tilgang til ethvert GitHub-depot. De er HTTPS og SSH. De fleste av dere bruker HTTPS. Men nå vet du at det ikke er en effektiv måte å bruke HTTPS-metoden for å klone de private depotene.

Tilgang inkluderer kloning, dytting, trekking osv..; alt som er relatert til oppdatering av depotet vårt i fjernkontrollen.

Det er ikke noe problem når det gjelder tilgang til de offentlige depotene. Men vi må autentisere oss selv mens vi får tilgang til et privat depot. Det er forskjellige måter å autentisere oss på.

La oss starte med den mest kjente…

Hvis du bruker HTTPS

Du bør sannsynligvis vite om HTTPS-metoden og se etter andre. La oss raskt se hvordan du får tilgang til et privat depot ved å bruke det.

  • Kopier koblingen til det private depotet ditt.

GitHub Private Repository

  • Åpne terminalen eller cmd på maskinen din.
  • Lim inn kommandoen git clone link for å klone det private depotet.
  • Erstatt koblingen med koblingen til din private depot.
  • Det vil be oss om å autentisere oss selv. Så vi må legge inn GitHub-legitimasjonen vår.
  • Først vil den be oss om å skrive inn GitHub-brukernavnet vårt. Skriv inn GitHub-brukernavnet ditt og trykk Enter.

Brukernavn for autentisering

  • Nå må vi skrive inn passordet. Skriv inn GitHub-passordet ditt og trykk Enter.

Autentiseringspassord

Det er det; vi har klonet det private depotet ved å bruke HTTPS-metoden. Nå, oppdater noe i depotet, commit og skyv dem til eksternt.

Hva la du merke til?

Den ber igjen om autentisering.

Trykk autentisering

Er det ikke en kjedelig og tung oppgave å legge inn legitimasjon hver gang vi samhandler med det private depotet?

Ja det er.

Vi kan ikke legge inn GitHub-legitimasjonen vår når vi samhandler med vårt private depot. Det er en tidkrevende prosess og bremser arbeidet vårt.

Det er forskjellige måter å bli kvitt problemet ovenfor. Den beste måten å gjøre det på er å bruke SSH. Men det er andre måter å gjøre det på. La oss se på dem alle én etter én.

.git config

All informasjon om våre arkivversjoner er lagret i .git-katalogen. Det er en skjult mappe. Det er en konfigurasjonsfil i den som lar oss konfigurere innstillingene. Men det anbefales ikke generelt.

  15 klassiske Playstation (PS1)-spill du fortsatt vil like å spille

Vi kan klone et privat depot ved å legge til brukernavnet og passordet vårt i depotets URL som følger.

git clone https://<strong>username:password</strong>@github.com/<strong>username</strong>/<strong>repository_name</strong>.git

Oppdater brukernavnet, passordet og repository_name med passende detaljer. Siden vi har oppgitt legitimasjonen vår i URL-en, vil den ikke be om autentisering som vi har sett før.

Så vi kommer til å følge metoden ovenfor for autentisering og oppdatere vår depotkonfigurasjon tilsvarende. La oss se trinnene for å bli kvitt gjentatt autentisering ved å oppdatere URL-en.

  • Åpne .git-mappen i ditt klonede depot.

.git-mappe

  • Du vil finne en fil med navnet config. Åpne den ved å bruke hvilken som helst tekstredigerer du ønsker.
  • Det vil være en linje med vår repository link som følger.

Repository Link i konfig

  • Oppdater URL-en ved å legge til brukernavn og passord, som vist ovenfor.

Repository URL Update

Nå, oppdater noe i depotet igjen, commit og push dem.

Observerer du noe?

Den burde ikke ha bedt om GitHub-legitimasjonen din denne gangen. Så vi har løst problemet vårt ved å oppdatere depotinnstillingen vår.

Du har kanskje lagt merke til at det ikke er sikkert. Når vi avslører legitimasjonen vår. Og denne metoden vil ikke fungere i tilfelle GitHub-passordet ditt inneholder @-tegn.

Så det er noen kritiske ulemper ved å bruke denne metoden. La oss derfor ignorere det og gå videre til neste metode.

credential.helper

Credential.helper lar oss lagre legitimasjonen for alltid i filen ~/.git-credentials.

Den lagrer legitimasjonen vår når vi legger dem inn for første gang. Igjen når vi prøver å få tilgang til det private depotet, vil det ikke be om legitimasjon før det er lagret i filen ~/git-credentials. Så det er en av måtene å unngå problemet vårt på. La oss se det i aksjon med presise trinn.

  • Først må vi aktivere alternativet for å lagre legitimasjonen vår med kommandoen git config credential.helper store.
  • Etter å ha aktivert alternativet, prøv å få tilgang til det private depotet med brukernavnet og passordet ditt.
  • Når du har skrevet inn brukernavnet og passordet ditt, vil det lagre det i ~/.git-credentials-filen med GitHub-legitimasjonen din som følger.

git-legitimasjon

Nå, igjen den samme prosessen for å sjekke om den fungerer som den skal eller ikke. Oppdater, forplikt og push. Jeg er sikker på at den ikke vil be deg om legitimasjonen hvis du har fulgt trinnene ovenfor for å lagre legitimasjonen din.

Går bra…

Hva om du vil lagre legitimasjonen i 4 timer i stedet for for alltid?

Credential.helper gir en måte å lagre legitimasjonen vår midlertidig i en viss tid. Vi bruker cache i stedet for å lagre for å lagre legitimasjonen i en viss tid.

Bufferen lagrer legitimasjonen vår i 15 minutter som standard. Etter 15 minutter vil git igjen be om legitimasjon. Men vi kan endre standardtiden ved å bruke følgende kommando.

git config credential.helper 'cache --timeout={time_in_seconds}'

Ikke glem å gi tiden i sekunder. La oss se det i aksjon.

  • Først må vi aktivere alternativet for å cache påloggingsinformasjonen vår med kommandoen git config credential.helper cache.
  • Få tilgang til det private depotet med brukernavn og passord.
  • Når du har skrevet inn brukernavnet og passordet ditt, vil det bufre GitHub-legitimasjonen din for en bestemt tid.
  18 lukrative krypto-tilknyttede programmer for å bli med og tjene penger i 2022

Nå, oppdater, forplikt og push. Igjen vil den ikke be om legitimasjonen din slik vi har sagt det for å bufre dem.

Vi har vist deg kommandoene for å jobbe med et git-initialisert depot. Vi kan oppdatere git-konfigurasjonen globalt for alle prosjekter ved å legge til –global-flagget i kommandoene ovenfor.

Personlige tilgangstokener

De personlige tilgangstokenene brukes til å gi tilgang til GitHub API. De personlige tilgangstokenene er som OAuth-tokens. Så de kan brukes til grunnleggende autentisering i stedet for et passord for git. Derfor kan vi bruke de personlige tilgangssymbolene for å løse problemet vårt.

La oss se hvordan du gjør det.

  • Logg på GitHub-kontoen din.
  • Gå til Innstillinger.

GitHub-innstillinger

  • Gå nå til Utvikle-innstillingene fra venstre navigasjonslinje.

GitHub utviklerinnstillinger

  • Klikk på de personlige tilgangssymbolene for å nå vår endelige destinasjon. Du vil se de personlige tilgangstokenene som følger.

GitHub personlige tilgangstokener

  • Klikk på Generer ny token for å generere en ny.

Generer nytt token

  • Skriv inn merknaden for tokenet. Du kan tenke på det som korte notater for token å huske.

Personlig tilgangstoken Merk

  • Velg tillatelsene for tokenet. Programmene som bruker tokenet vil gi tilgang til alle de valgte tillatelsene. I vårt tilfelle velger du repoen.

Lagringsrettigheter

  • Rull ned til bunnen og klikk på Generer token-knappen.

Generer token-knapp

  • Den viser det personlige tilgangstokenet bare én gang som følger. Vi kan ikke se vår personlige token igjen. Så kopier den og lagre den et sikkert sted. Bruk en passordbehandling hvis du trenger det.

Personlig tilgangstoken

  • Vi har opprettet personlig tilgangstoken.
  • Nå er det på tide å bruke det til å få tilgang til vårt private depot.
  • Oppdater nettadressen til depotet i .git/config-filen som https://{personal_access_token}@github.com/hafeezulkareem/private_repository.git på samme måte som den første metoden.

Personlig tilgangstoken i konfig

Prøv nå å få tilgang til det private depotet.

Har den spurt deg om autentiseringen?

Nei, den vil ikke be deg om autentisering før tokenet er aktivt. La oss gå til den siste måten å løse problemet på.

SSH

SSH brukes til å autentisere oss selv. Du finner hele dokumentet om SSH i GitHub her.

Ideen er enkel. Generer en SSH-nøkkel, legg den til GitHub-kontoen og nyt passordløs autentisering.

La oss se disse tre trinnene i detalj.

  • Åpne terminal eller cmd i systemet ditt.
  • Skriv inn kommandoen ssh-keygen -t rsa for å generere en ny SSH-nøkkel.
  • Den vil be om katalogen for å lagre nøkkelen. Trykk Enter for å velge standardkatalogen. Men du kan også endre katalogen basert på dine preferanser. Her går vi med standardkatalogen.
  Hvordan administrere Hulu-kontoen

SSH-katalog

  • Nå må vi skrive inn passordfrasen for å beskytte SSH-nøkkelen vår. Men det er valgfritt.
    • Hvis vi velger en passordfrase for SSH-nøkkelen, må vi angi den først hver gang vi slår på systemet vårt.
    • Hvis vi ikke valgte passordfrasen, er det ikke nødvendig å angi det først.

SSH Passphrase

  • Skriv inn passordfrasen på nytt for å bekrefte det.

SSH Passphrase

  • Til slutt vil den generere en ny SSH-nøkkel for oss som følger.

SSH nøkkel

Vi har generert en ny SSH-nøkkel i systemene våre. Det vil lage to filer som følger (hvis du har endret banen, kan filnavnene variere).

SSH nøkkelfiler

Nå er det på tide å koble til GitHub-kontoen vår. Innholdet i filen med filtypen .pub må kopieres til vår GitHub-konto for tilkoblingen. I mitt tilfelle er det id_rsa.pub.

  • Logg på GitHub-kontoen din.
  • Åpne Innstillinger.

GitHub-innstillinger

  • Klikk på SSH- og GPG-nøkler for å nå vår endelige destinasjon.

SSH- og GPG-nøkler

  • Klikk på den nye SSH-nøkkelen for å legge til vår nylig genererte SSH-nøkkel.

Ny SSH-nøkkel

  • Du vil navigere til følgende skjermbilde.

Ny SSH-nøkkel

  • Legg til riktig tittel for SSH-nøkkelen. SSH-nøklene er forskjellige for hvert system. Så, velg basert på det er et av de gode alternativene. Men det er ikke det eneste alternativet. Du kan velge basert på andre ting som dine preferanser.
  • Etter å ha valgt tittel, kopier og lim inn .pub-innholdet i det andre feltet.

Ny SSH-nøkkel

  • Til slutt, trykk på Legg til SSH-tasten og bekreft tilgangen med GitHub-passordet ditt.
  • Den nylig lagt til SSH-nøkkelen vil se ut som følger.

Ny SSH-nøkkel

Vi har lagt til vår nylig genererte SSH-nøkkel til GitHub. Nå må vi autentisere SSH-tilkoblingen for å nyte passordløs autentisering senere. For å gjøre det, skriv inn følgende kommando i terminal eller cmd.

ssh -T [email protected]

SSH-tilkobling

Den vil be om bekreftelse. Bekreft det. Og det er det, og vi er ferdige.

Klon nå ditt private depot. Den vil ikke be om noen autentisering denne gangen.

Oppdater, forplikt og push. Der går du. Den vil ikke be deg om autentisering lenger. Nyt det.

Konklusjon

Puh! vi har dekket ulike metoder for å få tilgang til private depoter uten å skrive inn legitimasjon hele tiden. Du kan bruke hvilken som helst metode. Men den generelle og beste praksisen er å bruke SSH-metoden for autentisering.

Igjen er det opp til dine preferanser; det er ingen streng regel for å bruke den eneste SSH-metoden. Men de fleste virksomheter bruker SSH-metoden for autentisering, som er sikker og sparer mye tid. Og sørg for at legitimasjonen din er trygg.

Lykke til med utviklingen 🙂