Hur ställer jag in lösenordslös autentisering till GitHub Private Repository?

By rik

Hantera Privata GitHub-arkiv Utan Upprepade Lösenordsfrågor

Att ständigt utföra samma uppgift kan vara både tråkigt och frustrerande för oss programmerare, eller hur?

Ett sådant exempel är interaktionen med privata arkiv på GitHub. Kanske känner du igen situationen och är här för att hitta en lösning. Din sökning kan sluta här.

I den här artikeln ska vi diskutera hur man får tillgång till privata GitHub-arkiv utan att behöva ange lösenord. Låt oss direkt gå till sak.

Det finns huvudsakligen två metoder för att komma åt ett GitHub-arkiv: HTTPS och SSH. De flesta av oss använder nog HTTPS, men vi ska se att det inte är den mest effektiva metoden för att hantera privata arkiv.

Åtkomst inkluderar alla vanliga operationer som att klona, pusha, pulla etc. – i princip allt som rör uppdatering av det lokala arkivet med det på GitHub.

Med offentliga arkiv uppstår inga problem, men för att komma åt privata arkiv krävs någon form av autentisering. Det finns flera sätt att hantera detta, så låt oss börja med den mest välkända metoden.

Använda HTTPS för Åtkomst

Du är troligen bekant med HTTPS-metoden. Låt oss kort repetera hur man kommer åt ett privat arkiv med den.

  • Börja med att kopiera länken till ditt privata arkiv.

GitHub Privat Arkiv

  • Öppna terminalen eller kommandotolken på din dator.
  • Klistra in kommandot `git clone länk` för att klona arkivet.
  • Byt ut ’länk’ med den faktiska länken till ditt privata arkiv.
  • Systemet kommer nu att kräva autentisering, vilket innebär att vi måste ange våra GitHub-uppgifter.
  • Först kommer det att fråga efter ditt GitHub-användarnamn. Ange det och tryck Enter.

  • Därefter måste du ange lösenordet. Skriv in ditt GitHub-lösenord och tryck på Enter.

Och det var allt! Det privata arkivet är nu klonat med hjälp av HTTPS. Om du nu gör några ändringar, committar och försöker pusha dem till GitHub, vad händer?

Jo, det frågar om autentisering igen.

Är det inte irriterande att ständigt behöva ange sina uppgifter varje gång du interagerar med ett privat arkiv?

Jo, det är det verkligen.

Denna ständiga autentisering är både tidsödande och saktar ner arbetet.

Det finns flera sätt att slippa detta, där det bästa ofta anses vara att använda SSH. Men det finns andra metoder som vi ska utforska.

Alternativ 1: Direkt Ändring i .git config

All versionshanteringsdata lagras i .git-katalogen, en dold mapp. Inuti den finns en konfigurationsfil där man kan göra vissa inställningar. Denna metod är dock inte alltid rekommenderad.

Vi kan till exempel klona ett privat arkiv genom att inkludera användarnamn och lösenord direkt i URL:en enligt följande:

git clone https://<strong>användarnamn:lösenord</strong>@github.com/<strong>användarnamn</strong>/<strong>arkivnamn</strong>.git

Ersätt ’användarnamn’, ’lösenord’ och ’arkivnamn’ med dina specifika uppgifter. Eftersom uppgifterna nu finns i URL:en, kommer inte systemet att fråga om autentisering.

Vi kan alltså uppdatera konfigurationen för vårt arkiv enligt ovan. Låt oss se stegen för att slippa upprepad autentisering genom att ändra URL:en.

  • Öppna mappen .git i det klonade arkivet.

  • Inuti hittar du en fil som heter `config`. Öppna den med valfri textredigerare.
  • Där bör finnas en rad som innehåller länken till ditt arkiv, ungefär så här:

  • Uppdatera URL:en genom att lägga till ditt användarnamn och lösenord enligt det tidigare exemplet.

Gör nu några ändringar i arkivet, committa dem och pusha. Noterar du något?

Systemet borde inte ha frågat efter dina uppgifter den här gången. Så vi har undvikit upprepad autentisering genom att uppdatera konfigurationen.

Men det finns en stor nackdel – säkerheten. Att inkludera användarnamn och lösenord i klartext är inte bra. Dessutom fungerar inte metoden om ditt lösenord innehåller tecknet `@`.

Därför är det bäst att undvika den här metoden och istället gå vidare till nästa.

Alternativ 2: Använda `credential.helper`

`credential.helper` ger oss möjlighet att lagra inloggningsuppgifter permanent i filen `~/.git-credentials`.

När du anger uppgifterna första gången, lagras de i filen. Vid nästa åtkomst av det privata arkivet kommer systemet inte att fråga om uppgifterna igen. Så detta är ett sätt att lösa vårt problem. Låt oss utforska det med exakta steg.

  • Först måste vi aktivera lagring av uppgifter med kommandot `git config credential.helper store`.
  • Efter aktivering, försök att komma åt arkivet med dina uppgifter.
  • När du har angett uppgifterna, kommer de att lagras i `~/.git-credentials`-filen på detta sätt:

Nu, gör om samma process för att verifiera att det fungerar. Uppdatera, committa och pusha. Om du har följt stegen ordentligt, kommer systemet inte att be om uppgifter igen.

Allt bra så här långt.

Men vad gör man om man inte vill lagra uppgifterna för alltid, utan bara under exempelvis 4 timmar?

`credential.helper` tillåter oss att tillfälligt lagra uppgifter under en viss tid. Vi kan använda `cache` istället för `store`.

Som standard cachas uppgifterna i 15 minuter. Efter 15 minuter kommer systemet att fråga igen. Men vi kan ändra standardtiden med kommandot:

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

Kom ihåg att ange tiden i sekunder. Låt oss titta på ett exempel:

  • Först aktiverar vi cache med `git config credential.helper cache`.
  • Gå sedan till det privata arkivet med dina uppgifter.
  • När du har angett uppgifterna en gång, kommer de att cachas under den angivna tiden.

Nu kan du uppdatera, committa och pusha. Systemet kommer inte att be om uppgifterna, eftersom de är cachade.

Ovanstående kommandon avser ett specifikt Git-arkiv. Om du vill tillämpa konfigurationen globalt för alla projekt, kan du lägga till flaggan `–global` till kommandona.

Alternativ 3: Använda Personliga Åtkomsttokens

Personliga åtkomsttokens används för att ge tillgång till GitHub API:er och kan fungera som ett alternativ till lösenord för grundläggande autentisering, vilket kan lösa vårt problem.

Låt oss se hur det går till.

  • Logga in på ditt GitHub-konto.
  • Gå till inställningar.

  • Klicka sedan på Utvecklarinställningar i menyn till vänster.

  • Här ser du Personliga Åtkomsttokens.

  • Klicka på Generera ny token.

  • Ange en notering för token, för att lättare kunna identifiera den.

  • Välj sedan de behörigheter som token ska ha. I vårt fall behöver vi `repo`.

  • Scrolla ner och tryck på knappen Generera token.

  • Nu visas den genererade token en enda gång, så kopiera och spara den på en säker plats. Använd gärna en lösenordshanterare.

  • Vi har nu skapat en personlig åtkomsttoken.
  • För att använda den, uppdatera arkivets URL i filen `.git/config` med `https://{personal_access_token}@github.com/användarnamn/privat_arkiv.git`, på samma sätt som i första metoden.

Försök nu att komma åt det privata arkivet. Kommer systemet att be om autentisering?

Nej, inte så länge token är giltig. Vi har nu kommit till det sista sättet att lösa problemet.

Alternativ 4: Använda SSH

SSH används för att autentisera oss. Du kan läsa mer om det i GitHubs dokumentation.

Tanken är enkel: generera en SSH-nyckel, lägg till den i ditt GitHub-konto och njut av lösenordslös autentisering.

Låt oss utforska dessa tre steg i detalj.

  • Öppna terminalen eller kommandotolken.
  • Skriv `ssh-keygen -t rsa` för att generera en ny SSH-nyckel.
  • Systemet kommer att fråga efter katalogen för att spara nyckeln. Tryck Enter för att använda standardkatalogen, eller välj en egen om du vill. Vi använder standardkatalogen här.

  • Nu måste du ange en lösenfras för att skydda SSH-nyckeln. Detta är valfritt.
    • Om du anger en lösenfras måste du skriva in den varje gång du startar datorn.
    • Om du inte väljer en lösenfras, behöver du inte ange den.

  • Ange lösenfrasen en gång till för att bekräfta den.

  • Slutligen genereras den nya SSH-nyckeln.

Vi har nu skapat en ny SSH-nyckel i vårt system. Den har skapat två filer (om du inte ändrade sökväg):

Nu är det dags att ansluta till ditt GitHub-konto. Innehållet i filen med `.pub`-tillägget måste kopieras till GitHub. I mitt fall är det `id_rsa.pub`.

  • Logga in på GitHub.
  • Gå till Inställningar.

  • Klicka på SSH- och GPG-nycklar.

  • Klicka på Ny SSH-nyckel.

  • Du kommer nu till en ny sida.

  • Välj en titel för SSH-nyckeln. Vanligen är det datorns namn eller liknande.
  • Kopiera innehållet från .pub-filen och klistra in det i det andra fältet.

  • Tryck slutligen på Lägg till SSH-nyckel, och bekräfta med ditt GitHub-lösenord.
  • Den nyligen tillagda SSH-nyckeln kommer nu att synas i listan.

Vi har nu lagt till SSH-nyckeln i GitHub. Nu måste vi verifiera anslutningen med:

ssh -T [email protected]

Bekräfta frågan. Det var allt.

Kopiera nu det privata arkivet. Du kommer inte att behöva autentisera dig den här gången.

Uppdatera, committa och pusha. Det kommer inte att fråga om lösenord. Njut!

Sammanfattning

Puh! Vi har gått igenom många olika metoder för att undvika att ständigt behöva ange uppgifter för att komma åt privata arkiv. Du kan använda vilken metod du föredrar, men det rekommenderas i allmänhet att använda SSH-metoden för autentisering.

Valet är ditt, det finns inga absoluta regler, men de flesta företag föredrar SSH-metoden, då det är säkert och tidsbesparande. Och kom ihåg att skydda dina uppgifter.

Lycka till med utvecklingen! 🙂