GitHub: Toestemming geweigerd (publickey). fataal: kon niet lezen van externe repository

Ik heb problemen met GitHub. Ik speel wat met een externe repository van Git.

Als ik nu probeer wijzigingen aan te brengen in de externe map, bijv.

git remote show origin

of

git push -u origin master

Ik krijg deze foutmelding

Toestemming geweigerd (publickey).
fataal: kon niet lezen van externe repository.

Zorg ervoor dat u over de juiste toegangsrechten beschikt
en het archief bestaat.
Ulrichs-MacBook-Pro:coredatatest ulrichheinelt$ git push -u origin master
Toestemming geweigerd (publickey).
fataal: kon niet lezen van externe repository.

Ik zou blij zijn als ik opnieuw kon beginnen met een nieuwe (lege) externe map. Of is er een manier om deze fout op te lossen?

Dit zijn mijn eerste stappen met GitHub, gisteren begonnen…
Bij voorbaat hartelijk dank!

Bewerk 1

mijninstellingen op https://github.com/UlliH/CoreDataTest/ instellingen

Bewerk 2

te vroeg blij🙁

Na het instellen van de SSH- en GPG-sleutels zijn de fouten nog steeds hetzelfde. :-/

Bewerk 3

Ik denk dat dat zo is, maar nog steeds hetzelfde…

voer hier de afbeeldingsbeschrijving in


Antwoord 1, autoriteit 100%

  • Op je GitHub-profiel staat een knop Edit Profile.
    Het bevindt zich in de rechterbovenhoek van de webpagina.
  • Druk erop en je ziet links Personal Settingsmenu.
  • Zoek in dat menu de optie SSH and GPG keysen druk erop.
  • Je ziet een optie New SSH keyom een ​​nieuwe sleutel toe te voegen.

Antwoord 2, autoriteit 98%

  1. Genereer SSH-sleutel met ssh-keygen -t rsa -b 4096 -C "your email".
  2. Kopieer de uitvoer van cat ~/.ssh/id_rsa.pubnaar je klembord
  3. Plak de hierboven gekopieerde uitvoer in het formulier op https://github.com/settings/ssh /nieuw

Update:Als je nog steeds wordt geconfronteerd met “ssh: connect to host github.com port 22: Connection timed out”, volg dan de onderstaande stappen.

Controleer de verbinding, meestal treedt er een time-out op

$ ssh -T [email protected]
ssh: connect to host github.com port 22: Connection timed out

Controleer hetzelfde door optionele parampoort op te geven

$ ssh -T -p 443 [email protected]
Hi <user_name>! You've successfully authenticated, but GitHub does not provide shell access.

Update de SSH-instellingen

$ vim ~/.ssh/config
# Add github in the know hosts
Host github.com
  Hostname ssh.github.com
  Port 443

Controleer de verbinding, deze keer zal deze meestal verbinding maken

$ ssh -T [email protected]
Hi <user_name>! You've successfully authenticated, but GitHub does not
provide shell access.

Antwoord 3, autoriteit 47%

  1. genereer uw sleutel

    ssh-keygen

  2. Visualiseer uw sleutels

    ls ~/.ssh

    id_rsa id_rsa.pub

  3. Start de agent

    eval `ssh-agent`

  4. Voeg uw sleutel toe aan de agent

    ssh-add ~/.ssh/id_rsa


Antwoord 4, autoriteit 27%

Voor mij moest ik instellen welke host welke SSH-sleutel moest gebruiken.
Maak/bewerk in de SSH-map van uw lokale computer, meestal onder ~/.sshhet bestand met de naam configmet uw voorkeurseditor zoals vimof gedit

vim ~/.ssh/config

en voeg het volgende toe met je git Host, HostNameen ssh IdentityFile(je ssh private key bestandspad):

Host gitlab.example.com
    HostName gitlab.example.com
    IdentityFile /home/YOURUSERNAME/.ssh/id_rsa

Antwoord 5, autoriteit 20%

Ik had hetzelfde probleem met mijn ssh-verbinding. Ik heb geprobeerd om het via ssh te werken, maar kon er geen werkende oplossing voor vinden. Dus in dat geval heb ik mijn externe URL gewijzigd van SSH in HTTPS. Ik heb het commando gebruikt:
$ git remote set-url origin https://github.com/USERNAME/REPOSITORY.git.
U kunt uw externe url zien gewijzigd met:
$ git remote -v.

Je kunt meer details vinden op Hier

Hierdoor wordt uw externe URL gewijzigd in HTTPS, dus u moet nu uw GitHub-gebruikersnaam en -wachtwoord typen om uw project naar de externe repo te pushen. Ik weet dat ssh eenvoudiger is dan HTTPS, wat betekent dat je je gebruikersnaam en wachtwoord niet hoeft in te typen, maar dit kan handig zijn als je geen oplossing hebt gevonden om het via ssh te repareren, en je haast hebt om je code naar uw opslagplaats.


Antwoord 6, autoriteit 3%

In Windows had ik het probleem bij het gebruik van gitin powershell of opdrachtprompt. Het gebruik van Git Bash op Windows loste het voor mij op, omdat het ervoor zorgt dat ssh-agentcorrect op de achtergrond kan worden uitgevoerd en de SSH-inloggegevens kunnen worden doorgestuurd die nodig zijn om dit te laten werken.

Het volgen van de instructies op deze link in Git Bash werkte voor mij: https://docs.github.com/en/github/authenticating-to-github/generating-a-new-ssh- sleutel-en-toevoegen-aan-de-ssh-agent


Antwoord 7

  1. zorg ervoor dat u de bestanden “openbare sleutel” en “privésleutel” correct hebt genoemd; precies zoals “id_rsa” en “id_rsa.pub”. Dit is iets dat je kunt vinden in je gebruikers/.ssh-map.

  2. voeg de openbare sleutel toe in GitHub

  3. Start uw terminal opnieuw op (bash ondersteund) en probeer opnieuw te klonen

als je schrijftoegang hebt tot de repo, zou je goed moeten zijn om na deze wijzigingen te gaan.

Uit ervaring gesproken (na een uur te hebben doorgebracht), kon ik op geen enkel forum informatie vinden waarin stond dat we expliciet de naam van het privé- en openbare bestand moeten behouden, zoals hierboven vermeld.

Veel plezier met coderen!


Antwoord 8

Als iemand van jullie met hetzelfde soort probleem wordt geconfronteerd op Bitbucket, dan is hier de oplossing:

Probleem:
——

[email protected] MINGW64 /u/works (master)
$ git kloon ssh://[email protected]:5449/rem/jenkinspipeline.git
Klonen in ‘jenkinspipeline’…
[email protected]: Toestemming geweigerd (publickey).
fataal: kon niet lezen van externe repository
.

Zorg ervoor dat u over de juiste toegangsrechten beschikt
en de repository bestaat.

Oplossing:
[email protected] MINGW64 /u/works (master)
$ kat < ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC99aqMXtBpVvCQb6mezTHsftC3CFY9VOpGaNmckmcTzXoOOWOheeM9V2NTrOWxpbE3UNdL / 6ZnmPyv5EI2zPMPstVIP5jAqcmxOvGc2zxy4wHeGTgrP6UaXs2nLScV4E7 rmdaVtSsfOa1i + + + eU2eg4UnIJpRLtGD6N hMKJXaXWpGfQ79USiPhPQKDGOz3PeEDggyvHs7HUzaKZpwEeIKYOSDXsvDwTJ6s5uQ30YfX3eoQbAis8TJeQejAmkuu62oSOs5zFJMSTAzakiyXW / xCUsLrnUSzxmBKO2BIA / tSTrqW / Gj0VhDniDFGwGz0K1NfLzfEJLWKvdB2EJWVFjEd [email protected]

Ga naar: https://bitbucket .internal.abc.com/plugins/servlet/ssh/projects/REM/repos/jenkinspipeline/keys
1) Sleutels toevoegen
Kopieer/plak de id_rsa.pub sleutelwaarde daar:

voer hier de afbeeldingsbeschrijving in

Gedaan!
Nu kun je de git-repository klonen

[email protected] MINGW64 /u/works (master)
$ git kloon ssh://[email protected]:5449/rem/jenkinspipeline.git
Klonen in ‘jenkinspipeline’…
remote: Objecten opsommen: 1146, klaar.
afstandsbediening: Objecten tellen: 100% (1146/1146), klaar.
afstandsbediening: Objecten comprimeren: 100% (987/987), klaar.
afstandsbediening: Totaal 1146 (delta 465), hergebruikt 0 (delta 0)
Objecten ontvangen: 100% (1146/1146), 149,53 KiB | 172,00 KiB/s, klaar.
Delta’s oplossen: 100% (465/465), klaar.


Antwoord 9

Voor degenen die Windows gebruiken en dit nog steeds niet kunnen achterhalen, ook al volgen ze de bovenstaande oplossingen. Ik heb deze gevolgd om het te laten werken.

  1. Ga naar C:\Users<accountName>.ssh of doe cd naar deze map in de opdrachtprompt
  2. Genereer SSH-sleutel met ssh-keygen -t rsa -b 4096 -C "your email"in de opdrachtprompt
  3. Belangrijk aspect in de tweede stap is dat je alles standaard laat en ook geen wachtwoordzin toevoegt. Blijf op enter drukken totdat de sleutel is gegenereerd. Ik veranderde de naam van het bestand en voegde een wachtwoordzin toe en op die manier werkte het niet voor mij. Er worden twee bestanden gemaakt, namelijk id_rsa en id_rsa.pub
  4. Kopieer de uitvoer van type id_rsa.pubnaar je klembord
  5. Plak deze sleutel in de SSH-sleutels onder git- of bitbucket-account
  6. Sluit de CMD en probeer nu git clone te gebruiken en het zou moeten werken

*Ik heb ssh-add id_rsaniet gebruikt omdat het wordt gedaan om deze privésleutel (id_rsa) toe te voegen aan een kluis


Antwoord 10

In mijn korte ervaring met het gebruik van git met linux, ontdekte ik dat er twee eenvoudige antwoorden op deze fout waren.

voer deze opdrachten in deze volgorde uit

git remote set-url --add origin <https://github.com/username/repo>
git remote set-url --delete origin <[email protected]:username/repo>

Hierdoor wordt uw configuratiebestand opnieuw geconfigureerd om HTTPS-oorsprong te gebruiken in plaats van SSH.

probeer nu push- of pull-commando’s uit te voeren.

OF

Herstart je Linux VM (als je er een gebruikt) en/of hostmachine. Opnieuw opstarten heeft het probleem meer dan eens voor mij opgelost.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes