Spara tid på att logga in på GitHub över SSH genom att använda lösenordslös autentisering.

Autentisering med GitHub innebär vanligtvis att du använder en åtkomsttoken eller lösenord. Dessa metoder kan dock vara obekväma och osäkra, särskilt när du kommer åt GitHub från flera enheter.

GitHub ger möjlighet att använda Secure Shell (SSH) för autentisering. SSH presenterar ett säkert nätverksprotokoll för fjärråtkomst till maskin. Denna funktion visar sig vara särskilt värdefull i situationer som kräver automatisering eller frekvent fjärråtkomst.

Förstå SSH-autentisering

Autentisering med SSH innebär användning av kryptografiska nycklar att upprätta en säker anslutning (tunnel) mellan en klient (lokal maskin) och en server (GitHub).

När du använder SSH för GitHub, genererar en användare ett par SSH-nycklar – en offentlig nyckel och en privat nyckel. Den publika nyckeln laddas upp till användarens GitHub-konto, medan den privata nyckeln förblir säkert lagrad på användarens lokala dator.

Processen kan liknas vid konceptet lås och nyckel. Den publika nyckeln (låset) är avsedd att delas öppet och säkert lagras på serversidan. Den fungerar som en motsvarighet till den privata nyckeln, vilket gör att servern kan verifiera identiteten på din lokala maskin. Omvänt fungerar den privata nyckeln (nyckeln) som en unik identifierare lagrad exklusivt på din lokala dator, vilket möjliggör framgångsrik autentisering med servern.

Under autentisering med GitHub presenterar din lokala maskin sin privata nyckel som bevis på identitet. Servern kontrollerar om motsvarande publika nyckel som är kopplad till ditt GitHub-konto matchar den givna privata nyckeln. Om nycklarna matchar, ger servern åtkomst och upprättar en krypterad och säker anslutning för kommunikation.

Konfigurera SSH för GitHub

I det här avsnittet kommer du att se hur du ställer in SSH för autentisering med GitHub.

1. Genererar SSH-nyckelpar

Processen att generera ett SSH-nyckelpar är det första steget mot att använda SSH för autentisering.

  1. Öppna din terminal eller kommandotolk.
  2. Utför följande kommando för att generera ett nytt SSH-nyckelpar:
     ssh-keygen -t rsa -b 4096 -C "din e-post@domän.com"
  3. Du kommer att bli ombedd att ange en filplats för att spara nyckelparet. Tryck Stiga på för att acceptera standardplatsen (~/.ssh/id_rsa) eller ange en anpassad plats.
     > Genererar offentligt/privat rsa-nyckelpar.
     > Ange fil isom för att spara nyckeln (/home/vagrant/.ssh/id_rsa):
  4. Därefter kommer du att bli ombedd att ange en lösenfras. Även om det är valfritt fungerar det som en extra säkerhetsnivå att lägga till en lösenfras. Se till att du kommer ihåg din lösenfras.
     > Ange lösenordsfras (tom för ingen lösenfras): 
     > Ange samma lösenfras igen:
  5. Efter att ha genererat nyckelparet bör du se två filer på den angivna platsen. id_rsa (privat nyckel) och id_rsa.pub (offentlig nyckel).
     > Din identifikation har sparats i /home/vagrant/.ssh/id_rsa.
     > Din publika nyckel har sparats i /home/vagrant/.ssh/id_rsa.pub.
  6. När det är klart visas tangenternas fingeravtryck och slumpmässig bild.
  7. Slutligen behöver du innehållet i den publika nyckeln för att lägga till i GitHub. Kör följande kommando för att hämta innehållet:
     katt ~/.ssh/id_rsa.pub

Se till att ange sökvägen (~/.ssh/id_rsa.pub i mitt fall) du använde när du skapade nycklarna.

Kopiera innehållet till en säker och tillfällig plats för senare användning.

2. Lägga till den offentliga nyckeln till GitHub

Nu när du har skapat ett SSH-nyckelpar måste du lägga till den publika nyckeln till ditt GitHub-konto.

  1. Logga in på ditt GitHub-konto och gå till ditt konto inställningar.
  2. Klicka på SSH- och GPG-nycklar finns på vänster sidofält.
  3. Klicka på Ny SSH-nyckel.
  4. Ge din SSH-nyckel en Titel.
  5. Klistra in det offentliga nyckelinnehållet i Nyckel fält.
  6. Slutligen klickar du på Lägg till SSH-nyckel för att spara SSH-nyckeln till ditt GitHub-konto.

Du har framgångsrikt exporterat den publika nyckeln till ditt GitHub-konto med dessa.

3. Konfigurera en SSH-agent

En SSH-agent är ett program som hjälper till att hantera SSH-nycklar och ger ett säkert sätt att lagra och använda dem. Den fungerar som en mellanhand mellan din lokala dator och fjärrservern under SSH-autentisering. Detta låter dig hantera flera SSH-nycklar för olika GitHub-konton.

  1. Se till att SSH-agenten körs.
     $ eval"$(ssh-agent -s)"
     > Agent pid 2757
  2. Lägg till den privata nyckeln till SSH-agenten.
     $ ssh-add ~/.ssh/id_rsa
     > Ange lösenordsfras för /home/vagrant/.ssh/id_rsa:
     > Identitet tillagd: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)

Du har framgångsrikt konfigurerat en SSH-agent för att hantera dina nycklar.

4. Testar SSH-anslutningen

Du kan nu testa för att verifiera att din SSH-anslutning är korrekt inställd, och du kan autentisera till GitHub med SSH.

  • Kör kommandot nedan för att testa SSH-anslutningen till GitHub;
     ssh -T [email protected]
    om allt går bra kommer du att se en varning om fingeravtrycket. Bekräfta fingeravtrycket och skriv ja att fortsätta.
     > Värdens äkthet 'github.com (140.92.130.4)' burkinte etableras.
    > ECDSA-nyckelns fingeravtryck är SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
    > Är du säker på att du vill Fortsätta ansluta (ja/nej)?
  • När du skriver ja, kommer du att se en utdata som liknar den nedan.
     > Varning: Tilläggs permanent 'github.com, 140.92.130.4' (ECDSA) till listan över kända värdar.
    > Hej princewillingoo! Duhar autentiserats, men GitHub ger inte skalåtkomst.

Detta visar att autentiseringen lyckades.

Hantera arkiv med SSH

Genom att konfigurera SSH kan du hantera dina arkiv utan att behöva oroa dig för problem med lösenord och åtkomsttokens.

Ställer in fjärr-URL

git fjärrkontroll uppsättning-url ursprung [email protected]:/.git

Kloning av ett arkiv

git klona [email protected]:/.git

Skickar ändringar till ett arkiv

git push ursprung 

Hämtar ändringar från ett arkiv

git pull ursprung 

Fördelar med SSH över lösenordsautentisering

Användningen av SSH för autentisering erbjuder flera anmärkningsvärda fördelar jämfört med traditionella lösenordsbaserade autentiseringsmetoder. Detta inkluderar:

  • SSH-autentisering eliminerar behovet av lösenord, vilket minskar risken för autentiseringsstöld.
  • Användningen av kryptografiska nycklar gör den mer immun mot brute-force attacker jämfört med lösenord.
  • Om din privata nyckel äventyras kan du återkalla och ersätta den, vilket gör den komprometterade nyckeln värdelös.

Av denna anledning tenderar SSH-autentisering att vara ett bättre alternativ jämfört med lösenordsautentisering.

Bästa metoder och felsökning

För att säkerställa en smidig och säker SSH-installation är det nödvändigt att följa bästa praxis och vara medveten om vanliga problem som kan uppstå och sätt att felsöka dem.

  1. Ange alltid en lösenfras för att skapa ett extra lager av säkerhet.
  2. Öva ofta nyckelrotation och säkerhetskopiering.
  3. Bekräfta varje steg för att undvika behörighetsfel eller felaktig SSH-agentkonfiguration.

Genom att följa dessa bästa praxis kan du med säkerhet använda SSH-autentisering för GitHub.

Mångsidigheten hos SSH

SSH används flitigt i andra områden för att fjärrstyra servrar, mikrokontroller och nätverksenheter eftersom det möjliggör säker åtkomst till kommandoradsgränssnittet (CLI), vilket gör det möjligt för användare att utföra olika uppgifter, konfigurera inställningar, överföra filer och felsöka frågor.