Spar tid på at logge på GitHub over SSH ved at bruge adgangskodefri godkendelse.

Autentificering med GitHub involverer typisk brug af et adgangstoken eller en adgangskode. Disse metoder kan dog være ubelejlige og usikre, især når du får adgang til GitHub fra flere enheder.

GitHub giver mulighed for at bruge Secure Shell (SSH) til godkendelse. SSH præsenterer en sikker netværksprotokol til fjernadgang til maskinen. Denne funktion viser sig at være særlig værdifuld i situationer, der kræver automatisering eller hyppig fjernadgang.

Forstå SSH-godkendelse

Autentificering med SSH involverer brugen af kryptografiske nøgler at etablere en sikker forbindelse (tunnel) mellem en klient (lokal maskine) og en server (GitHub).

Når du bruger SSH til GitHub, genererer en bruger et par SSH-nøgler - en offentlig nøgle og en privat nøgle. Den offentlige nøgle uploades til brugerens GitHub-konto, mens den private nøgle forbliver sikkert gemt på brugerens lokale maskine.

Processen kan sammenlignes med begrebet lås og nøgle. Den offentlige nøgle (lås) er beregnet til at blive delt åbent og sikkert opbevaret på serversiden. Den fungerer som en pendant til den private nøgle, hvilket gør det muligt for serveren at verificere identiteten på din lokale maskine. Omvendt fungerer den private nøgle (nøgle) som en unik identifikator, der udelukkende er gemt på din lokale maskine, hvilket muliggør vellykket godkendelse med serveren.

instagram viewer

Under godkendelse med GitHub præsenterer din lokale maskine sin private nøgle som bevis på identitet. Serveren tjekker, om den tilsvarende offentlige nøgle, der er knyttet til din GitHub-konto, matcher den givne private nøgle. Hvis nøglerne matcher, giver serveren adgang og etablerer en krypteret og sikkert forbindelse til kommunikation.

Opsætning af SSH til GitHub

I dette afsnit kan du se, hvordan du konfigurerer SSH til godkendelse med GitHub.

1. Generering af SSH-nøglepar

Processen med at generere et SSH-nøglepar er det første skridt mod at bruge SSH til godkendelse.

  1. Åbn din terminal eller kommandoprompt.
  2. Udfør følgende kommando for at generere et nyt SSH-nøglepar:
     ssh-keygen -t rsa -b 4096 -C "din mail@domæne.com"
  3. Du bliver bedt om at indtaste en filplacering for at gemme nøgleparret. Trykke Gå ind for at acceptere standardplaceringen (~/.ssh/id_rsa) eller angive en brugerdefineret placering.
     > Generering af offentlig/privat rsa nøglepar.
     > Indtast fil ihvilken for at gemme nøglen (/home/vagrant/.ssh/id_rsa):
  4. Dernæst vil du blive bedt om at indtaste en adgangssætning. Selvom det er valgfrit, tjener tilføjelse af en adgangssætning som et ekstra sikkerhedsniveau. Sørg for at huske din adgangssætning.
     > Indtast adgangssætning (tom til ingen adgangssætning): 
     > Indtast samme adgangssætning igen:
  5. Efter generering af nøgleparret bør du se to filer på den angivne placering. id_rsa (privat nøgle) og id_rsa.pub (offentlig nøgle).
     > Din identifikation er blevet gemt i /home/vagrant/.ssh/id_rsa.
     > Din offentlige nøgle er blevet gemt i /home/vagrant/.ssh/id_rsa.pub.
  6. Efter færdiggørelsen vises nøglernes fingeraftryk og tilfældige billede.
  7. Til sidst skal du bruge indholdet af den offentlige nøgle for at tilføje til GitHub. Kør følgende kommando for at få indholdet:
     kat ~/.ssh/id_rsa.pub

Sørg for at angive stien (~/.ssh/id_rsa.pub i mit tilfælde), du brugte, da du oprettede nøglerne.

Kopier indholdet til et sikkert og midlertidigt sted til senere brug.

2. Tilføjelse af den offentlige nøgle til GitHub

Nu hvor du har genereret et SSH-nøglepar, skal du tilføje den offentlige nøgle til din GitHub-konto.

  1. Log ind på din GitHub-konto og gå til din konto Indstillinger.
  2. Klik på SSH og GPG nøgler placeret i venstre sidebjælke.
  3. Klik på Ny SSH nøgle.
  4. Giv din SSH-nøgle en Titel.
  5. Indsæt det offentlige nøgleindhold i Nøgle Mark.
  6. Klik til sidst på Tilføj SSH-nøgle for at gemme SSH-nøglen på din GitHub-konto.

Du har eksporteret den offentlige nøgle til din GitHub-konto med disse.

3. Konfiguration af en SSH-agent

En SSH-agent er et program, der hjælper med at administrere SSH-nøgler og giver en sikker måde at opbevare og bruge dem på. Den fungerer som mellemled mellem din lokale maskine og fjernserveren under SSH-godkendelse. Dette giver dig mulighed for at administrere flere SSH-nøgler til forskellige GitHub-konti.

  1. Sørg for, at SSH-agenten kører.
     $ eval"$(ssh-agent -s)"
     > Agent pid 2757
  2. Tilføj den private nøgle til SSH-agenten.
     $ ssh-add ~/.ssh/id_rsa
     > Indtast adgangssætning til /home/vagrant/.ssh/id_rsa:
     > Identitet tilføjet: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)

Du har konfigureret en SSH-agent til at administrere dine nøgler.

4. Test af SSH-forbindelsen

Du kan nu teste for at verificere, at din SSH-forbindelse er konfigureret korrekt, og du kan autentificere til GitHub ved hjælp af SSH.

  • Kør kommandoen nedenfor for at teste SSH-forbindelsen til GitHub;
     ssh -T git@github.com
    hvis alt går fint, vil du se en advarsel om fingeraftrykket. Bekræft fingeraftrykket og skriv Ja at fortsætte.
     > Værtens ægthed 'github.com (140.92.130.4)' kanikke etableres.
    > ECDSA-nøglefingeraftryk er SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
    > Er du sikker på, at du vil Blive ved forbinder (ja/nej)?
  • Ved indtastning Ja, vil du se et output, der ligner det nedenfor.
     > Advarsel: Permanent tilføjet 'github.com, 140.92.130.4' (ECDSA) til listen over kendte værter.
    > Hej princewillingoo! Duer blevet godkendt, men GitHub giver ikke shell-adgang.

Dette viser, at godkendelsen lykkedes.

Håndtering af repositories med SSH

Konfiguration af SSH giver dig mulighed for at administrere dine repositories uden at skulle bekymre dig om problemer med adgangskoder og adgangstokens.

Indstilling af ekstern URL

git fjernbetjening sæt-url oprindelse git@github.com:/.git

Kloning af et depot

git klon git@github.com:/.git

Skub ændringer til et lager

git push oprindelse 

Trækker ændringer fra et lager

git pull oprindelse 

Fordele ved SSH over adgangskodegodkendelse

Brugen af ​​SSH til godkendelse giver flere bemærkelsesværdige fordele i forhold til traditionelle adgangskodebaserede autentificeringsmetoder. Dette omfatter:

  • SSH-godkendelse eliminerer behovet for adgangskoder, hvilket reducerer risikoen for tyveri af legitimationsoplysninger.
  • Brugen af ​​kryptografiske nøgler gør den mere immun overfor brute-force angreb sammenlignet med adgangskoder.
  • Hvis din private nøgle er kompromitteret, kan du tilbagekalde og erstatte den, hvilket gør den kompromitterede nøgle ubrugelig.

Af denne grund plejer SSH-godkendelse at være en bedre mulighed sammenlignet med adgangskodegodkendelse.

Bedste praksis og fejlfinding

For at sikre en jævn og sikker SSH-opsætning er det nødvendigt at følge bedste praksis og være opmærksom på almindelige problemer, der kan opstå, og måder at fejlfinde dem på.

  1. Indstil altid en adgangssætning for at skabe et ekstra sikkerhedslag.
  2. Øv hyppig nøglerotation og sikkerhedskopiering.
  3. Bekræft hvert trin for at undgå tilladelsesfejl eller forkert SSH-agentkonfiguration.

Ved at overholde disse bedste fremgangsmåder kan du trygt bruge SSH-godkendelse til GitHub.

SSH's alsidighed

SSH bruges i vid udstrækning i andre områder til at fjernadministrere servere, mikrocontrollere og netværksenheder, da det giver mulighed for sikker adgang til kommandolinjegrænsefladen (CLI), der gør det muligt for brugere at udføre forskellige opgaver, konfigurere indstillinger, overføre filer og fejlfinde problemer.