Git Push vereist gebruikersnaam en wachtwoord

Ik heb een git-repository gekloneerd van mijn GitHub-account naar mijn pc.

Ik wil met zowel mijn pc als laptop werken, maar met één GitHub-account.

Wanneer ik probeer naar of te trekken aan GitHub met mijn pc, vereist het een gebruikersnaam en wachtwoord, maar niet wanneer ik de & NBSP gebruikt; laptop!

Ik wil mijn gebruikersnaam en wachtwoord niet typen elke keer dat ik met & nbsp communiceer; origin. Wat ben ik mis en nbsp; hier?


1, Autoriteit 100%

Een gemeenschappelijke oorzaak is klonen met behulp van de standaard (HTTPS) in plaats van SSH. U kunt dit corrigeren door naar uw repository te gaan, op “Clone of Download” te klikken en vervolgens op de knop “SSH” boven het veld URL te klikken en de URL van uw oorsprong op afstand zoals deze te updaten:

git remote set-url origin [email protected]:username/repo.git

U kunt controleren of u de afstandsbediening hebt toegevoegd als HTTPS of SSH met:

git remote -v

Dit is gedocumenteerd in Github: Remote URL’s schakelen van HTTPS naar SSH .


2, Autoriteit 23%

permanent authenticeren met git-repositories

Voer de volgende opdracht uit om referentie te maken Caching :

$ git config credential.helper store
$ git push https://github.com/owner/repo.git
Username for 'https://github.com': <USERNAME>
Password for 'https://[email protected]': <PASSWORD>

U moet ook CACHING geven Vervallen ,

git config --global credential.helper 'cache --timeout 7200'

Na het inschakelen van inloggegevens, wordt het in de cache in de cache voor 7200 seconden (2 uur) .


3, Autoriteit 7%

Ik kwam net hetzelfde probleem tegen en de eenvoudigste oplossing die ik vond, was om SSH-URL te gebruiken in plaats van HTTPS One:

ssh://[email protected]/username/repo.git

en niet dit:

https://github.com/username/repo.git

U kunt nu valideren met Just de SSH-toets in plaats van de usernameen password.


4, Autoriteit 6%

Afgezien van het overschakelen naar SSH, kunt u ook HTTPS blijven gebruiken, als u het niet erg vindt om uw wachtwoord in duidelijke tekst te plaatsen. Plaats dit in uw ~/.netrcen het vraagt ​​niet om uw gebruikersnaam / wachtwoord (ten minste op Linux en Mac):

machine github.com
       login <user>
       password <password>

Addition (zie Vonc’s tweede opmerking): op Windows De bestandsnaam is %HOME%\_netrc.

Lees ook de eerste opmerking van Vonc in het geval u wilt coderen.

Nog een toevoeging (zie de opmerking van de gebruiker137717) die u kunt gebruiken als u git 1.7.10 of nieuwer hebt.

Cache uw GitHub-wachtwoord in Git in GIT met behulp van een Credential Helper :

Als u GitHub-repositories klonen met behulp van HTTPS, kunt u een
Credentiële helper om Git te vertellen om uw GitHub-gebruikersnaam en
wachtwoord telkens wanneer het praat met GitHub.

Dit werkt ook op Linux, Mac en Windows.


5, Autoriteit 4%

Voor de niet-ingewijden die in de war zijn door de vorige antwoorden, kunt u doen:

git remote -v

die reageert met iets als

origin    https://[email protected]/yourname/yourrepo.git (fetch)
origin    https://[email protected]/yourname/yourrepo.git (push)

Dan kun je het commando uitvoeren dat veel anderen hebben voorgesteld, maar nu ken je je naam en je repo van hierboven, dus je kunt gewoon yourname/yourrepo.gituit het bovenstaande knippen en plakken in:

git remote set-url origin [email protected]:yourname/yourrepo.git

Antwoord 6, autoriteit 2%

Bron: Git instellen

Het volgende commando zal je wachtwoord enige tijd in het geheugen bewaren (voor Git 1.7.10of nieuwer).

$ git config --global credential.helper cache
# Set git to use the credential memory cache
$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after one hour (setting is in seconds)

7

U kunt uw GitHub-wachtwoord in GIT cache:

Volg gewoon de instructies van Github’s officiële documentatie .

Na het volgen van de instructies van de bovenstaande link, moet u in staat zijn om naar / naar uw repository te duwen / trekken zonder uw gebruikersnaam / wachtwoord elke keer te typen.


8

Wat werkte voor mij was om te bewerken .git/configen gebruik

[remote "origin"]
        url = https://<login>:<password>@gitlab.com(...).git

Het spreekt voor zich dat dit een onveilige manier van opslaan van uw wachtwoord, maar er zijn omgevingen / gevallen waarin dit niet een probleem kan zijn.


9

Hier is een andere optie:

In plaats van het schrijven

git push origin HEAD

Je zou kunnen schrijven:

git push https://user:[email protected]/path HEAD

Het is duidelijk dat met de meeste shells dit zal resulteren in het wachtwoord krijgen opgeslagen in de geschiedenis, dus houd daar rekening mee.


10

Als de SSH-toets of .netrcbestand niet voor u werken, dan een ander eenvoudig, maar minder veilige oplossing, die voor u zou kunnen werken is git-credential-store – Helper voor het opslaan van referenties op schijf:

git config --global credential.helper store

Standaard referenties worden opgeslagen in het bestand ~/.git-credentials. Het zal worden gemaakt en geschreven.

Let op: het gebruik van deze helper zal slaan uw wachtwoorden ongecodeerd op de harde schijf, enkel beschermd door Bestandssysteembevoegdheden. Als dit niet nog een redelijke veiligheid afweging kan zijn.


11

Ik had het zelfde probleem.

Dus ik veranderde de .git/configbestand van mijn project,

url = https://github.com/<your-user-here>/<your-repo-here>

naar

url = [email protected]:<your-user-here>/<your-repo-here>

en de openbare SSH-sleutel toegevoegd aan het Git-profiel dat in de instelling is.

Voor de openbare SSH-sleutel:

cat ~/.ssh/id_rsa.pub

Antwoord 12

Voor Windows Git-gebruikers, na het uitvoeren van git config --global credential.helper store, als het nog steeds om een wachtwoord vraagt, kun je beter controleren waar het configuratiebestand naartoe wordt geschreven, met behulp van deze commando

git config --list --show-origin

In mijn geval werkte het nadat ik het configuratiebestand ‘C:\Program Files\Git\mingw64\etc\gitconfig’ handmatig had bewerkt en de volgende tekst had toegevoegd.

[credential]
    helper = store

Antwoord 13

Je Git-configuratiebestand rechtstreeks bijwerken (als je geen fancy commando’s wilt onthouden):

Open je .git/config-bestand in je favoriete teksteditor. Het zal in de map zijn die je hebt gekloond of in de repository waarin je git inithebt uitgevoerd. Ga naar die repository. .gitis een verborgen map, en als u op Ctrl+ Hdrukt, wordt de verborgen map weergegeven, (ls -ain terminal).

Hieronder staat een voorbeeld van het bestand .git/config. Kopieer en plak deze regels en zorg ervoor dat u die regels bijwerkt met uw Git-informatie.

[user]
        name = Tux
        email = [email protected]
        username = happy_feet
[remote "origin"]
        url = https://github.com/happy_feet/my_code.git
        fetch = +refs/heads/*:refs/remotes/origin/*

Wijzig het URL-gedeelte met het volgende formaat voor SSH:

url = [email protected]:happy_feet/my_code.git

(De bovenstaande indelingen veranderen niet met verschillende GIT-externe servers zoals GitHub of Bitbucket. Het is hetzelfde als u Git gebruikt voor Version Control ):

Opmerking: De SSH-manier om verbinding te maken met een Remote Git-repository, moet u uw openbare SSH-sleutel toevoegen aan uw GIT Remote Server (zoals GitHub of Bitbucket. Zoeken naar de pagina Instellingen Ssh-sleutels ).

Raadpleeg: om te weten hoe u uw SSH-toetsen kunt genereren
SSH-toetsen maken


14

Als u HTTPS hebt gekloond in plaats van SSH en geconfronteerd met de kwestie met gebruikersnaam en wachtwoord die prompt op pull, push en fetch. U kunt dit probleem eenvoudigweg oplossen voor Ubuntu

Stap 1:
Ga naar de root directory

cd ~/

Maak een bestand .Git-inloggegevens

Voeg deze inhoud toe aan dat bestand met u usenamepasswordEN githosting URL

https://user:[email protected]

Voer vervolgens de opdracht

uit

git config --global credential.helper store

Nu kunt u push-push en halen alle details van uw repo zonder gedoe.


15

Dit is wat voor mij werkte:

git remote set-url origin https://[email protected]/username/reponame.git

Voorbeeld:

git remote set-url origin https://[email protected]/jsmith/master.git

16

U hebt eigenlijk twee opties.

Als u dezelfde gebruiker op beide machines gebruikt, moet u de .pub-toets naar uw pc kopiëren, dus Github weet dat u dezelfde gebruiker bent.

Als je een nieuw .pub-bestand voor je pc hebt gemaakt en de machines als verschillende gebruikers wilt behandelen, moet je het nieuwe .pub-bestand op de GitHub-website registreren.

Als dit nog steeds niet werkt, kan het zijn dat ssh niet correct is geconfigureerd en dat ssh de locatie van uw sleutels niet kan vinden. Probeer

ssh -vv [email protected]

Om meer informatie te krijgen waarom SSH mislukt.


Antwoord 17

Update voor HTTPS:

GitHub heeft een nieuw programma voor Windows gelanceerd dat je inloggegevens opslaat wanneer je HTTPS gebruikt:

Te gebruiken:

  • Download het programma van hier

  • Zodra je het programma hebt uitgevoerd, zal het je .gitconfig-bestand bewerken. Controleer opnieuw of het de juiste .gitconfigheeft bewerkt voor het geval je er meerdere hebt. Als het niet de juiste heeft bewerkt, voeg dan het volgende toe aan je .gitconfig

    [credential]
        helper = !'C:\\Path\\To\\Your\\Downloaded\\File\\git-credential-winstore.exe'
    

    LET op het regeleinde na [credential]. Het is verplicht.

  • Open je opdrachtregelclient en probeer git push origin mastereen keer. Als het je om een wachtwoord vraagt, voer het dan in en je bent klaar. Wachtwoord opgeslagen!


Antwoord 18

U moet twee stappen uitvoeren –

  1. git remote remove origin
  2. git remote add origin [email protected]:NuggetAI/nugget.git

Merk op dat de Git-URL een SSH-URL is en geen HTTPS-URL… die u hier kunt selecteren:


Antwoord 19

Maak een lijst van uw huidige SSH-sleutels:

ls -l ~/.ssh

Genereer een nieuwe SSH-sleutel:

ssh-keygen -t ed25519 -C "[email protected]"

waar je [email protected]moet vervangen door je GitHub-e-mailadres
adres.
Wanneer u wordt gevraagd om Enter a file in which to save the key, drukt u op
Enter.
Bij Enter passphrase (empty for no passphrase)– druk gewoon op
Enter(voor een lege wachtwoordzin).
Maak opnieuw een lijst van uw SSH-sleutels:

ls -l ~/.ssh

De bestanden id_ed25519en id_ed25519.pubzouden nu moeten zijn toegevoegd.
Start de ssh-agent op de achtergrond:

eval $(ssh-agent -s)

Voeg uw SSH-privésleutel toe aan de ssh-agent:

ssh-add ~/.ssh/id_ed25519

Voer vervolgens de openbare sleutel uit naar het terminalscherm:

cat ~/.ssh/id_ed25519.pub

Kopieer de uitvoer naar het klembord
(Ctrl+ Invoegen).
Ga naar https://github.com/<your-github-username>en meld u aan met uw
gebruikersnaam en wachtwoord.
Klik op je GitHub-avatar in de rechterbovenhoek en vervolgens op Instellingen.
Klik in het linkerdeelvenster op SSH- en GPG-sleutels.
Klik op de groen gekleurde knop Nieuwe SSH-sleutel
en plak de openbare SSH-sleutel in het tekstgebied met het label Sleutel.
Gebruik een beschrijvende Titeldie aangeeft vanaf welke computer je gaat
gebruik deze SSH-sleutel. Klik op SSH-sleutel toevoegen.


Als uw huidige lokale repository is gemaakt met httpen gebruikersnaam,
het moet opnieuw worden gemaakt om SSH-compatibel te worden.
Controleer eerst of je een schoon werkende boom hebt
zodat u geen werk verliest:

git status

Vervolgens cd ..naar de bovenliggende directory en rm -fr <name-of-your-repo>.
Kloon eindelijk een nieuwe kopie die SSH gebruikt in plaats van gebruikersnaam/wachtwoord:

git clone [email protected]:[your-github-username]/[repository-name].git

Referenties:
https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/generating-a-new-ssh- key-and-adding-it-to-the-ssh-agent
https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/adding-a-new-ssh-key-to-your- github-account


Antwoord 20

Als je Git gebruikt (bijvoorbeeld Git Bash) onder Windows
(en als u niet wilt overschakelen van HTTPS naar SSH), kunt u ook Git Credential Manager voor Windows

Deze applicatie bewaart de gebruikersnaam en het wachtwoord voor u…


Antwoord 21

Zoals veel gebruikers hebben gezegd, hoeft u alleen uw Git-repository-URL te wijzigen van HTTPS in SSH.

Als u geen SSH-sleutel op uw computer hebt gegenereerd, moet u dit doen.

Als aanvullende informatie kreeg ik na deze wijziging nog steeds dezelfde foutmelding:

Toestemming geweigerd.

In mijn geval was het probleem dat ik de Windows Shell gebruikte om het ngh-commando uit te voeren; aangezien deze opdracht een prompt zou moeten openen om de SSH-zin op te vragen en de Windows Shell dit soort prompts niet opent, is de authenticatie gewoon mislukt.

Dus ik hoefde alleen maar de Git-shell te openen en daar het ngh-commando uit te voeren, de SSH-zin in de prompt te plaatsen telkens als het erom vroeg en “voilà”… Het werkte gewoon prima!


Antwoord 22

# gen  the pub and priv keys
 # use "strange" naming convention, because those WILL BE more than 10 ...
 ssh-keygen -t rsa -b 4096 -C "[email protected]" -f ~/.ssh/[email protected]@`hostname -s`
 # set the git alias ONLY this shell session
 alias git='GIT_SSH_COMMAND="ssh -i ~/.ssh/[email protected].`hostname -s`" git'
 # who did what when and why
 git log --pretty --format='%h %ai %<(15)%ae ::: %s'
 # set the git msg
 export git_msg='issue-123 my important commit msg'
 # add all files ( danger !!! ) and commit them with the msg
 git add --all ; git commit -m "$git_msg" --author "Me <[email protected]"
 # finally 
 git push

Other episodes