Geekflare wordt ondersteund door ons publiek. We kunnen affiliate commissies verdienen met het kopen van links op deze site.
In Ontwikkeling Laatst bijgewerkt: 23 september 2023
Deel op:
Invicti beveiligingsscanner voor webtoepassingen - de enige oplossing die automatische verificatie van kwetsbaarheden levert met Proof-Based Scanning™.

Het herhalen van dezelfde taak is saai en pijnlijk voor programmeurs zoals wij. Nietwaar?

Eén van die taken is interactief met GitHub’s privé repository. Wat is er aan de hand? U weet wat het is. En u zoekt naar manieren om het op te lossen en bent op dit artikel terechtgekomen. Na het lezen van dit artikel zult u stoppen met zoeken

Dus, hier gaan we het hebben over toegang krijgen tot GitHub private repository zonder wachtwoord. Laten we zonder verder oponthoud beginnen

Er zijn twee manieren om toegang te krijgen tot een GitHub repository. Dat zijn HTTPS en SSH. De meesten van u gebruiken HTTPS. Maar nu komt u te weten dat het niet efficiënt is om de HTTPS methode te gebruiken voor het klonen van privé repositories

Toegang krijgen omvat klonen, pushen, pullen, enz.; alles wat te maken heeft met het bijwerken van onze repository op afstand

Er is geen probleem als het gaat om toegang tot de openbare repositories. Maar we moeten onszelf authenticeren als we een privé-repository benaderen. Er zijn verschillende manieren om onszelf te authenticeren

Laten we beginnen met de meest bekende..

Als u HTTPS gebruikt

U zou waarschijnlijk op de hoogte moeten zijn van de HTTPS-methode en op zoek moeten gaan naar andere. Laten we snel eens kijken hoe u hiermee toegang krijgt tot een privé archief

  • Kopieer uw privé archief link.
GitHub Private Repository
GitHub Privé Repository
  • Open de terminal of cmd op uw machine.
  • Plak het commando git clone link om de privé repository te clonen.
  • Vervang de link door de link van uw privé repository.
  • Het zal ons vragen om ons te authenticeren. We moeten dus onze GitHub referenties invoeren.
  • Eerst zal het ons vragen om onze GitHub gebruikersnaam in te voeren. Voer uw GitHub gebruikersnaam in en druk op Enter.
Authentication Username
Authenticatie gebruikersnaam
  • Nu moeten we het wachtwoord invoeren. Typ uw GitHub wachtwoord in en druk op Enter.
Authentication Password
Authenticatiewachtwoord

Dat was het; we hebben het privé-repository gekloond met de HTTPS-methode . Werk nu iets bij in de repository, commit het en push het naar remote

Wat is u opgevallen?

Het vraagt opnieuw om de authenticatie

Push Authentication
Push Authenticatie
Push Authentication
Push Authenticatie

Is het geen saaie en zware taak om referenties in te voeren elke keer dat we interactie hebben met de privéopslagplaats?

Ja, dat is het zeker

We kunnen onze GitHub referenties niet elke keer invoeren als we met onze privé repository communiceren. Het is een tijdrovend proces en vertraagt ons werk

Er zijn verschillende manieren om van het bovenstaande probleem af te komen. De beste manier is om SSH te gebruiken. Maar er zijn ook andere manieren. Laten we ze allemaal één voor één bekijken

.git configuratie

Alle informatie over onze repositories versies is opgeslagen in de .git map. Het is een verborgen map. Er zit een config bestand in waarmee we de instellingen kunnen configureren. Maar het wordt in het algemeen niet aangeraden

We kunnen een privé repository klonen door onze gebruikersnaam en wachtwoord als volgt toe te voegen aan de URL van de repository

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

Werk de gebruikersnaam, het wachtwoord en de repository_name bij met de juiste gegevens. Omdat we onze gegevens in de URL hebben gegeven, zal het niet om authenticatie vragen, zoals we eerder gezien hebben

We gaan dus de bovenstaande authenticatiemethode volgen en onze repositoryconfiguratie dienovereenkomstig bijwerken. Laten we de stappen bekijken om van de herhaalde authenticatie af te komen door de URL bij te werken

  • Open de .git map in uw gekloonde repository.
.git Folder
.git map
  • U zult een bestand vinden met de naam config. Open het met een teksteditor naar keuze.
  • Er zal een regel zijn met onze repository-link als volgt.
Repository Link in config
Repository Link in config
  • Werk de URL bij door uw gebruikersnaam en wachtwoord toe te voegen , zoals hierboven te zien is.
Repository URL Update
Repository URL bijwerken

Werk nu weer iets bij in de repository, commit en push ze

Ziet u iets?

Het zou deze keer niet om uw GitHub referenties gevraagd moeten hebben. Dus, we hebben ons probleem opgelost door onze repository-instelling bij te werken

U hebt misschien gemerkt dat het niet veilig is. Omdat we onze referenties blootgeven. En deze methode zal niet werken als uw GitHub wachtwoord het@ teken bevat

Er zijn dus een aantal belangrijke nadelen aan het gebruik van deze methode. Laten we het daarom negeren en naar de volgende methode gaan

credential.helper

De credential.helper staat ons toe om de referenties voor altijd op te slaan in ~/.git-credentials bestand

Het zal onze referenties opslaan als we ze voor de eerste keer invoeren. Opnieuw als we de privé repository proberen te benaderen, zal het niet om referenties vragen totdat ze opgeslagen zijn in het ~/git-credentials bestand. Dat is dus één van de manieren om ons probleem te omzeilen. Laten we het in actie zien met precieze stappen

  • Eerst moeten we de optie om onze referenties op te slaan activeren met het commando git config credential.helper store.
  • Na het activeren van de optie, probeert u toegang te krijgen tot de privé repository met uw gebruikersnaam en wachtwoord.
  • Zodra u uw gebruikersnaam en wachtwoord hebt ingevoerd, zal het het opslaan in ~/.git-credentials bestand met uw GitHub referenties als volgt.
git-credentials
git-credentials

Nu weer hetzelfde proces om te controleren of het goed werkt of niet. Update, commit en push. Ik weet zeker dat het u niet om de referenties zal vragen als u de bovenstaande stappen hebt gevolgd om uw referenties op te slaan

Gaat prima..

Wat als u de referenties voor 4 uur wilt opslaan in plaats van voor altijd?

De credential.helper biedt een manier om onze referenties tijdelijk voor een bepaalde tijd op te slaan. We gebruiken cache in plaats van store om de referenties voor een bepaalde tijd op te slaan

De cache slaat onze referenties standaard 15 minuten op. Na 15 minuten zal git weer om referenties vragen. Maar we kunnen de standaard tijd veranderen met het volgende commando

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

Vergeet niet de tijd in seconden op te geven. Laten we het in actie zien

  • Eerst moeten we de optie om onze referenties in de cache te plaatsen activeren met het commando git config credential.helper cache.
  • Ga naar de privé repository met uw gebruikersnaam en wachtwoord.
  • Zodra u uw gebruikersnaam en wachtwoord hebt ingevoerd, zal het uw GitHub referenties voor een bepaalde tijd cachen.

Nu, update, commit en push. Opnieuw zal het niet om uw referenties vragen, omdat we gezegd hebben dat het ze cacht

We hebben u de commando’s laten zien om met een git geïnitialiseerde repository te werken. We kunnen de git configuratie globaal voor alle projecten bijwerken door de --global vlag in de bovenstaande commando’s toe te voegen

Persoonlijke Toegangstokens

De persoonlijke toegangsmunten worden gebruikt om toegang te geven tot de GitHub API. De persoonlijke toegangsmunten zijn als OAuth tokens. Ze kunnen dus gebruikt worden voor basisauthenticatie in plaats van een wachtwoord voor git. Daarom kunnen we de persoonlijke toegangsmunten gebruiken om ons probleem op te lossen

Laten we eens kijken hoe we dat moeten doen

  • Log in op uw GitHub account.
  • Ga naar Instellingen.
GitHub Settings
GitHub Instellingen
  • Ga nu naar de Ontwikkel instellingen vanuit de linker navigatiebalk.
GitHub Developer Settings
GitHub Developer Instellingen
GitHub Developer Settings
GitHub Developer Instellingen
  • Klik op de Persoonlijke toegangsmunten om onze eindbestemming te bereiken. U zult de persoonlijke toegangstekens als volgt zien.
GitHub Personal Access Tokens
GitHub Persoonlijke toegangstokens
  • Klik op Genereer nieuw token om een nieuw token te genereren.
Generate new token
Nieuw token genereren
  • Voer de notitie voor het token in. U kunt het zien als korte notities die het token moet onthouden.
Personal access token Note
Notitie voor persoonlijk toegangstoken
  • Selecteer de rechten voor het token. De programma’s die het token gebruiken, zullen toegang verlenen tot alle geselecteerde rechten. Selecteer in ons geval de repo.
Repository Permissions
Repository Toestemmingen
  • Scroll naar beneden en klik op de knop Token genereren .
Generate token Button
Genereer token knop
  • Het persoonlijke toegangstoken wordt slechts één keer als volgt weergegeven. We kunnen ons persoonlijke token niet meer zien. Kopieer het dus en sla het ergens veilig op. Gebruik een wachtwoordmanager als dat nodig is.
Personal access token
Persoonlijk toegangstoken
  • We hebben met succes het persoonlijke toegangstoken aangemaakt.
  • Nu is het tijd om het te gebruiken om toegang te krijgen tot onze privé repository.
  • Werk de URL van de repository in het .git/config bestand bij als https://{personal_access_token}@github.com/hafeezulkareem/private_repository.git, net als bij de eerste methode.
Personal access token in config
Persoonlijk toegangstoken in config

Probeer nu toegang te krijgen tot de private repository

Is er om verificatie gevraagd?

Nee, er wordt pas om verificatie gevraagd als het token actief is. Laten we naar de laatste manier gaan om ons probleem op te lossen

SSH

SSH wordt gebruikt om ons te authenticeren. U vindt het volledige document over SSH hier op GitHub

Het idee is eenvoudig. Genereer een SSH sleutel, voeg die toe aan het GitHub account en geniet van wachtwoordloze authenticatie

Laten we deze drie stappen in detail bekijken

  • Open terminal of cmd op uw systeem.
  • Voer het commando ssh-keygen -t rsa in om een nieuwe SSH sleutel te genereren.
  • Er wordt gevraagd naar de map om de sleutel op te slaan. Druk op Enter om de standaardmap te selecteren. Maar u kunt de map ook wijzigen op basis van uw voorkeur. Hier gebruiken we de standaardmap.
SSH Directory
SSH Directory
  • Nu moeten we de wachtwoordzin invoeren om onze SSH-sleutel te beschermen. Maar dit is optioneel
    • Als we een wachtwoordzin voor de SSH-sleutel kiezen, moeten we deze eerst invoeren wanneer we ons systeem aanzetten.
    • Als we geen wachtwoordzin hebben gekozen, dan is het niet nodig om deze eerst in te voeren.
SSH Passphrase
SSH Passphrase
  • Voer de wachtwoordzin nogmaals in om deze te bevestigen.
SSH Passphrase
  • Tot slot zal het als volgt een nieuwe SSH-sleutel voor ons genereren.
SSH Key
SSH Key

We hebben met succes een nieuwe SSH-sleutel gegenereerd in onze systemen. Er worden de volgende twee bestanden aangemaakt (als u het pad hebt gewijzigd, kunnen de bestandsnamen afwijken)

SSH Key Files
SSH Sleutelbestanden

Nu is het tijd om verbinding te maken met ons GitHub account. De inhoud van het bestand met de extensie .pub moet gekopieerd worden naar ons GitHub account voor de verbinding. In mijn geval is het id_rsa.pub

  • Log in op uw GitHub account.
  • Open de Instellingen.
GitHub Settings
GitHub Instellingen
  • Klik op SSH en GPG Keys om onze eindbestemming te bereiken.
SSH and GPG Keys
SSH en GPG Sleutels
SSH and GPG Keys
SSH en GPG sleutels
  • Klik op New SSH Key (Nieuwe SSH-sleutel) om onze nieuw gegenereerde SSH-sleutel toe te voegen.
New SSH key
Nieuwe SSH sleutel
  • U komt in het volgende scherm.
New SSH Key
Nieuwe SSH Sleutel
  • Voeg de juiste titel voor de SSH-sleutel toe. De SSH-sleutels verschillen per systeem. Kiezen op basis daarvan is dus één van de goede opties. Maar het is niet de enige optie. U kunt ook kiezen op basis van andere dingen, afhankelijk van uw voorkeur.
  • Nadat u de titel hebt gekozen, kopieert en plakt u de inhoud van de .pub in het tweede veld.
New SSH key
Nieuwe SSH-sleutel
  • Klik tenslotte op Add SSH key en bevestig de toegang met uw GitHub wachtwoord.
  • De nieuw toegevoegde SSH sleutel zal er als volgt uitzien.
New SSH key
Nieuwe SSH sleutel

We hebben onze nieuw gegenereerde SSH sleutel toegevoegd aan GitHub. Nu moeten we de SSH-verbinding authenticeren om later van wachtwoordloze authenticatie te kunnen genieten. Om dat te doen, voert u het volgende commando in terminal of cmd in

ssh -T git@github.com
SSH Connection
SSH verbinding

Er wordt om bevestiging gevraagd. Bevestig het. En dat is het, en we zijn klaar

Kloon nu uw privé archief. Het zal deze keer niet om authenticatie vragen

Update, commit en push. Ziezo. Er wordt niet meer om authenticatie gevraagd. Veel plezier ermee

Conclusie

Oef! We hebben verschillende methoden behandeld om toegang te krijgen tot privéopslagplaatsen zonder steeds uw referenties in te voeren. U kunt elke methode gebruiken. Maar de algemene en beste methode is om de SSH-methode voor authenticatie te gebruiken

Nogmaals, het is aan uw voorkeur; er is geen strikte regel om alleen de SSH-methode te gebruiken. Maar de meeste bedrijven gebruiken de SSH-methode voor verificatie, wat veilig is en veel tijd bespaart. En zorg ervoor dat uw referenties veilig zijn

Veel plezier met ontwikkelen 🙂

  • Hafeezul Kareem Shaik
    Auteur
Met dank aan onze sponsors
Meer geweldige lezingen over ontwikkeling
Energie voor uw bedrijf
Enkele van de tools en services om je bedrijf te helpen groeien.
  • Invicti maakt gebruik van Proof-Based Scanning™ om de geïdentificeerde kwetsbaarheden automatisch te verifiëren en binnen enkele uren bruikbare resultaten te genereren.
    Probeer Invicti
  • Web scraping, residentiële proxy, proxy manager, web unlocker, zoekmachine crawler en alles wat je nodig hebt om webgegevens te verzamelen.
    Probeer Brightdata
  • Monday.com is een alles-in-één werk OS om je te helpen bij het beheren van projecten, taken, werk, verkoop, CRM, operaties, workflows en meer.
    Probeer maandag
  • Intruder is een online kwetsbaarhedenscanner die zwakke plekken in de cyberbeveiliging van uw infrastructuur vindt om kostbare datalekken te voorkomen.
    Probeer indringer