Bespaar tijd bij het aanmelden bij GitHub via SSH door wachtwoordloze authenticatie te gebruiken.

Authenticatie met GitHub omvat meestal het gebruik van een toegangstoken of wachtwoord. Deze methoden kunnen echter onhandig en onveilig zijn, vooral bij toegang tot GitHub vanaf meerdere apparaten.

GitHub biedt de mogelijkheid om Secure Shell (SSH) te gebruiken voor authenticatie. SSH presenteert een veilig netwerkprotocol voor externe machinetoegang. Deze functie blijkt vooral waardevol in situaties die automatisering of frequente toegang op afstand vereisen.

SSH-authenticatie begrijpen

Authenticatie met SSH omvat het gebruik van cryptografische sleutels om een ​​beveiligde verbinding (tunnel) tot stand te brengen tussen een client (lokale machine) en een server (GitHub).

Bij gebruik van SSH voor GitHub genereert een gebruiker een paar SSH-sleutels: een openbare sleutel en een privésleutel. De openbare sleutel wordt geüpload naar het GitHub-account van de gebruiker, terwijl de privésleutel veilig wordt opgeslagen op de lokale computer van de gebruiker.

instagram viewer

Het proces kan worden vergeleken met het concept van een slot en sleutel. De openbare sleutel (slot) is bedoeld om openlijk te worden gedeeld en veilig op de server te worden opgeslagen. Het dient als tegenhanger van de privésleutel, waardoor de server de identiteit van uw lokale machine kan verifiëren. Omgekeerd fungeert de privésleutel (sleutel) als een unieke identificatie die exclusief op uw lokale computer wordt opgeslagen, waardoor succesvolle authenticatie bij de server mogelijk is.

Tijdens authenticatie met GitHub presenteert uw lokale machine zijn privésleutel als identiteitsbewijs. De server controleert of de bijbehorende openbare sleutel die aan uw GitHub-account is gekoppeld, overeenkomt met de opgegeven privésleutel. Als de sleutels overeenkomen, verleent de server toegang en maakt een versleuteld en veilig verbinding voor communicatie.

SSH instellen voor GitHub

In deze sectie zie je hoe je SSH instelt voor authenticatie met GitHub.

1. SSH-sleutelpaar genereren

Het genereren van een SSH-sleutelpaar is de eerste stap naar het gebruik van SSH voor authenticatie.

  1. Open uw terminal of opdrachtprompt.
  2. Voer de volgende opdracht uit om een ​​nieuw SSH-sleutelpaar te genereren:
     ssh-keygen -t rsa -b 4096 -C "[email protected]"
  3. U wordt gevraagd een bestandslocatie in te voeren om het sleutelpaar op te slaan. druk op Binnenkomen om de standaardlocatie (~/.ssh/id_rsa) te accepteren of een aangepaste locatie op te geven.
     > Publiek/privé RSA-sleutelpaar genereren.
     > Voer bestand in inwelke om de sleutel op te slaan (/home/vagrant/.ssh/id_rsa):
  4. Vervolgens wordt u gevraagd een wachtwoordzin in te voeren. Hoewel optioneel, dient het toevoegen van een wachtwoordzin als een extra beveiligingsniveau. Zorg ervoor dat u uw wachtwoordzin onthoudt.
     > Voer een wachtwoordzin in (leeg voor geen wachtwoord): 
     > Voer dezelfde wachtwoordzin opnieuw in:
  5. Na het genereren van het sleutelpaar zou u twee bestanden op de opgegeven locatie moeten zien. id_rsa (privésleutel) en id_rsa.pub (publieke sleutel).
     > Uw identificatie is opgeslagen in /home/vagrant/.ssh/id_rsa.
     > Uw openbare sleutel is opgeslagen in /home/vagrant/.ssh/id_rsa.pub.
  6. Na voltooiing worden de vingerafdruk van de toetsen en de afbeelding van de willekeurige afbeelding weergegeven.
  7. Ten slotte heb je de inhoud van de openbare sleutel nodig om toe te voegen aan GitHub. Voer de volgende opdracht uit om de inhoud op te halen:
     kat ~/.ssh/id_rsa.pub

Zorg ervoor dat u het pad opgeeft (~/.ssh/id_rsa.pub in mijn geval) dat u hebt gebruikt bij het maken van de sleutels.

Kopieer de inhoud naar een veilige en tijdelijke locatie voor later gebruik.

2. De openbare sleutel toevoegen aan GitHub

Nu je een SSH-sleutelpaar hebt gegenereerd, moet je de openbare sleutel toevoegen aan je GitHub-account.

  1. Log in op uw GitHub-account en ga naar uw account Instellingen.
  2. Klik op SSH- en GPG-sleutels bevindt zich in de linkerzijbalk.
  3. Klik op Nieuwe SSH-sleutel.
  4. Geef uw SSH-sleutel a Titel.
  5. Plak de inhoud van de openbare sleutel in het Sleutel veld.
  6. Klik ten slotte op de SSH-sleutel toevoegen om de SSH-sleutel op te slaan in uw GitHub-account.

Hiermee hebt u de openbare sleutel met succes naar uw GitHub-account geëxporteerd.

3. Een SSH-agent configureren

Een SSH-agent is een programma dat SSH-sleutels helpt beheren en een veilige manier biedt om ze op te slaan en te gebruiken. Het fungeert als tussenpersoon tussen uw lokale machine en de externe server tijdens SSH-authenticatie. Hierdoor kun je meerdere SSH-sleutels voor verschillende GitHub-accounts beheren.

  1. Zorg ervoor dat de SSH-agent actief is.
     $ evalueren"$(ssh-agent -s)"
     > Agent-pid 2757
  2. Voeg de privésleutel toe aan de SSH-agent.
     $ ssh-toevoegen ~/.ssh/id_rsa
     > Voer een wachtwoordzin in voor /home/vagrant/.ssh/id_rsa:
     > Identiteit toegevoegd: /home/vagrant/.ssh/id_rsa (/home/vagrant/.ssh/id_rsa)

U heeft met succes een SSH-agent geconfigureerd om uw sleutels te beheren.

4. De SSH-verbinding testen

U kunt nu testen om te controleren of uw SSH-verbinding correct is ingesteld en u kunt zich authenticeren bij GitHub met behulp van SSH.

  • Voer de onderstaande opdracht uit om de SSH-verbinding met GitHub te testen;
     ssh -T [email protected]
    als alles goed gaat zie je een waarschuwing over de vingerafdruk. Bevestig de vingerafdruk en type Ja doorgaan.
     > De authenticiteit van gastheer 'github.com (140.92.130.4)' kanniet worden vastgesteld.
    > De vingerafdruk van de ECDSA-sleutel is SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM.
    > Weet je zeker dat je dat wilt doorgaan aansluiten (ja/nee)?
  • Bij het typen Ja, ziet u een uitvoer die lijkt op die hieronder.
     > Waarschuwing: permanent toegevoegd 'github.com, 140.92.130.4' (ECDSA) toe aan de lijst met bekende hosts.
    > Hoi prinswillingoo! Jijheb met succes geauthenticeerd, maar GitHub biedt geen shell-toegang.

Dit geeft aan dat de authenticatie is gelukt.

Opslagplaatsen beheren met SSH

Door SSH te configureren, kunt u uw opslagplaatsen beheren zonder dat u zich zorgen hoeft te maken over wachtwoorden en toegangstokens.

Externe URL instellen

git afstandsbediening set-url oorsprong [email protected]:/.git

Een repository klonen

gek kloon [email protected]:/.git

Wijzigingen naar een repository pushen

git push oorsprong 

Wijzigingen uit een repository halen

git pull-oorsprong 

Voordelen van SSH ten opzichte van wachtwoordauthenticatie

Het gebruik van SSH voor authenticatie biedt verschillende opmerkelijke voordelen ten opzichte van traditionele op wachtwoorden gebaseerde authenticatiemethoden. Dit bevat:

  • SSH-authenticatie elimineert de noodzaak van wachtwoorden, waardoor het risico op diefstal van referenties wordt verkleind.
  • Het gebruik van cryptografische sleutels maakt het meer immuun voor aanvallen met brute kracht in vergelijking met wachtwoorden.
  • Als uw privésleutel is gecompromitteerd, kunt u deze intrekken en vervangen, waardoor de gecompromitteerde sleutel onbruikbaar wordt.

Om deze reden is SSH-authenticatie vaak een betere optie in vergelijking met wachtwoordauthenticatie.

Beste praktijken en probleemoplossing

Om een ​​soepele en veilige SSH-configuratie te garanderen, is het noodzakelijk om best practices te volgen en op de hoogte te zijn van veelvoorkomende problemen die kunnen optreden en manieren om deze op te lossen.

  1. Stel altijd een wachtwoordzin in om een ​​extra beveiligingslaag te creëren.
  2. Oefen frequente sleutelrotatie en back-ups.
  3. Bevestig elke stap om machtigingsfouten of onjuiste SSH-agentconfiguratie te voorkomen.

Door je aan deze best practices te houden, kun je vol vertrouwen gebruikmaken van SSH-authenticatie voor GitHub.

De veelzijdigheid van SSH

SSH wordt veel gebruikt in andere gebieden om servers, microcontrollers en netwerkapparaten op afstand te beheren, omdat het veilige toegang mogelijk maakt naar de opdrachtregelinterface (CLI), waardoor gebruikers verschillende taken kunnen uitvoeren, instellingen kunnen configureren, bestanden kunnen overdragen en problemen kunnen oplossen problemen.