Ich benutze Git jetzt schon eine Weile, aber die ständigen Anfragen nach einem Passwort treiben mich an die Wand.
Ich verwende Mac OS X und GitHub und richte Git und meine SSH-Schlüssel gemäß den Anweisungen auf der GitHub- Seite "Git einrichten" ein .
Ich habe auch den Github-SSH-Schlüssel zu meinem Mac OS X-Schlüsselbund hinzugefügt, wie auf der Seite mit den Passphrasen für SSH-Schlüssel von GitHub erwähnt . Mein öffentlicher Schlüssel ist bei Git registriert.
Trotzdem muss ich jedes Mal, wenn ich versuche, Git zu ziehen, meinen Benutzernamen und mein Passwort eingeben. Gibt es etwas anderes als einen SSH-Schlüssel, den ich dafür einrichten muss?
netrc
. Ein vollständiges Beispiel finden Sie hier .Antworten:
Ich denke, Sie haben möglicherweise die falsche Git-Repository-URL.
Öffnen
.git/config
Sie den Abschnitt [remote "origin"] und suchen Sie ihn. Stellen Sie sicher, dass Sie SSH verwenden:Sie können die SSH-URL auf der Hauptseite Ihres Repositorys sehen, wenn Sie auf Klonen klicken oder herunterladen und ssh auswählen .
Und NICHT der
https
oder dergit
:Sie können jetzt nur mit dem SSH-Schlüssel anstelle des Benutzernamens und des Kennworts validieren .
Wenn Git sich darüber beschwert
'origin' has already been added
, öffnen Sie die.config
Datei und bearbeiten Sie dasurl = "..."
Teil danach[remote origin]
alsurl = ssh://github/username/repo.git
Gleiches gilt für andere Dienste. Stellen Sie sicher, dass die Adresse wie folgt aussieht:
protocol://something@url
ZB
.git/config
für Azure DevOps:quelle
[remote "origin"]
Abschnittssatzurl = ssh://[email protected]/username/Repo.git
. Das hat bei mir funktioniert.url = [email protected]:organization/Repo.git
funktioniert. +1 dafür, dass du mich auf den richtigen Weg geführt hast! Erfolg!Credential.helper konfigurieren
Führen Sie dies unter OS X (jetzt macOS) im Terminal aus :
Es ermöglicht Git, die Datei Keychain.app zu verwenden, um Benutzername und Passwort zu speichern und die Passphrase für Ihren privaten SSH-Schlüssel aus dem Schlüsselbund abzurufen.
Für Windows verwenden:
Fehlerbehebung
Wenn der Git-Anmeldeinformations-Helfer korrekt konfiguriert ist, speichert macOS die Passphrase im Schlüsselbund. Manchmal kann die Verbindung zwischen SSH und den im Schlüsselbund gespeicherten Passphrasen unterbrochen werden . Führen Sie aus
ssh-add -K
oderssh-add ~/.ssh/id_rsa
fügen Sie den Schlüssel erneut zum Schlüsselbund hinzu.macOS v10.12 (Sierra) wechselt zu ssh
Für macOS 10.10 (Sierra)
ssh-add -K
muss nach jedem Neustart ausgeführt werden. Um dies zu vermeiden, erstellen Sie~/.ssh/config
mit diesem Inhalt.Von der
ssh_config
man
Seite am 10.12.2:Apple hat Technote 2449 hinzugefügt, das erklärt, was passiert ist.
quelle
.netrc
Dateimethode zu verwenden, mit der Ihr Passwort im Klartext angezeigt wird.'credential-osxkeychain' is not a git command.
da der Helfer für Anmeldeinformationen nicht installiert war. Ich habe die Anweisungen hier befolgt, um es zu installieren: help.github.com/articles/set-up-git#password-cachinggit config --global credential.helper osxkeychain
Konfigurationsdatei in meinem.ssh
Verzeichnis hinzugefügt habe .Dies passierte mir beim Upgrade auf macOS v10.12 (Sierra). Es sieht so aus, als ob der SSH-Agent beim Upgrade gelöscht wurde.
Einfach laufen hat
ssh-add
meine vorhandene Identität gefunden. Ich gab das Passwort ein und konnte loslegen.quelle
Verwenden Sie dies: Ersetzen Sie github.com durch den entsprechenden Hostnamen
quelle
git remote -v
. Trotzdem werde ich immer noch zur Eingabe eines Passworts aufgefordert.git@**
keine Anmeldeinformationen anfordert und die URL mithttps@**
:). So fand ich dieses Dokument .Wie bereits erwähnt, können Sie einen Kennwort-Cache-Helfer installieren. Ich wollte meistens nur den Link für andere Plattformen posten und nicht nur für Mac. Ich verwende einen Linux-Server und dies war hilfreich: Zwischenspeichern Ihres GitHub-Passworts in Git
Für Mac:
Windows:
Linux:
quelle
Suchen Sie auch, wer Sie nach der Passphrase fragt. Ist es Git oder Ihr SSH-Agent?
In meinem Fall
git pull
fragte mich jedes Mal, wenn ich es tat :Enter passphrase for key '/work/username/.ssh/id_rsa':
Also nahm ich an, dass Git nach einer Passphrase fragte. Also suchte ich weiter nach Lösungen, um später festzustellen, dass mein SSH-Agent heruntergefahren war. Welches kann mit
eval $(ssh-agent)
undssh-add
wie angegeben behoben werden hier .Füge auch unten einen kleinen Ausschnitt ein, den du zu deinem hinzufügen kannst
~/.bashrc
Datei (oder einem gleichwertigen) sicherzustellen, dass Ihr SSH-Agent bei Ihrer Anmeldung gestartet wird.Auf jeden Fall war dies ein ziemlich dummer Fehler, den ich gemacht habe, aber hier zu posten, nur für den Fall, dass es jemandem hilft, etwas Zeit zu sparen, damit er nicht den falschen Baum bellt, wie ich es getan habe.
quelle
SSH_ENV="$HOME/.ssh/environment"
Hinweis: Während dies praktisch ist, speichert Git Ihre Anmeldeinformationen im Klartext in einer lokalen Datei (.git-Anmeldeinformationen) unter Ihrem Projektverzeichnis (siehe unten für das "Home" -Verzeichnis). Wenn Ihnen das nicht gefällt, löschen Sie diese Datei und wechseln Sie zur Cache-Option.
Wenn Git Sie jedes Mal, wenn eine Verbindung zum Remote-Repository hergestellt werden muss, erneut nach Anmeldeinformationen fragt, können Sie den folgenden Befehl ausführen:
So speichern Sie die Kennwörter in .git-Anmeldeinformationen in Ihrem% HOME% -Verzeichnis im Gegensatz zum Projektverzeichnis: Verwenden Sie das Flag --global
quelle
Anleitung zu Git unter Windows und GitHub mit SSH zum Push / Pull: Eine illustrierte Anleitung zu Git unter Windows
quelle
Führen Sie in Windows für Git 1.7.9+ den folgenden Befehl an der Eingabeaufforderung aus, um die Konfigurationsdatei in einem Texteditor zu öffnen:
Fügen Sie dann in der Datei den folgenden Block hinzu, falls er nicht vorhanden ist, oder bearbeiten Sie ihn entsprechend:
Speichern und schließen Sie die Datei. Sie müssen die Anmeldeinformationen nach der obigen Änderung nur einmal angeben.
quelle
Verwenden Sie den folgenden Befehl, um die Zeitüberschreitung zu verlängern, damit Sie das Kennwort für eine Weile erneut eingeben können
Ich habe es für Bitbucket und GitHub verwendet, es funktioniert für beide. Das einzige, was Sie tun müssen,
3600
ist in Sekunden. Erhöhen Sie es auf das gewünschte Maß. Ich habe es geändert,259200
was ungefähr 30 Tage ist. Auf diese Weise gebe ich mein Passwort etwa alle 30 Tage erneut ein.quelle
Ich glaube, Sie haben Ihr Problem behoben, aber ich sehe hier keine Lösung, die mir geholfen hat, also hier ist sie.
Terminal eingeben:
Dadurch wird Ihre
known_hosts
Datei geleert, und Sie müssen jeden Host hinzufügen, den Sie verwendet und mit dem Sie eine Verbindung hergestellt haben, aber das Problem wurde behoben.quelle
cat /dev/null > ~/.ssh/known_hosts
werde das gleiche tun.> ~/.ssh/known_hosts
ist noch kürzer :)Ich denke, die Antwort von static_rtti ist in gewissem Sinne hackig. Ich weiß nicht, ob dies früher verfügbar war, aber Git-Tools bieten jetzt Speicherplatz für Anmeldeinformationen.
Cache-Modus
Verwenden Sie den Cache-Modus, um Anmeldeinformationen für einen bestimmten Zeitraum im Speicher zu behalten. Keines der Passwörter wird jemals auf der Festplatte gespeichert und nach 15 Minuten aus dem Cache gelöscht.
Speichermodus
Verwenden Sie den Speichermodus, um die Anmeldeinformationen in einer Nur-Text-Datei auf der Festplatte zu speichern. Sie laufen nie ab.
Ich persönlich habe den Store-Modus verwendet . Ich habe mein Repository gelöscht, es geklont und musste dann meine Anmeldeinformationen einmal eingeben.
Referenz: 7.14 Git Tools - Speicherung von Anmeldeinformationen
quelle
credential.helper cache
funktioniert NICHT. Es sollte seingit config --global credential.helper wincred
.git config --local credential.helper store
. In meinem Fall bin ich über HTTPS, auf diese WeiseDie Antwort von orkoden zur Verwendung des Schlüsselbunds mit Git in Ihrem Terminal war unvollständig und führt zu Fehlern. Dies müssen Sie tun, um den Benutzernamen und das Passwort zu speichern, die Sie im Terminal in Ihrem Schlüsselbund eingeben:
Dann treten Sie ein
Wenn Sie den Teil mit der Git-Konfiguration bereits vor dem Curl-Zeug erledigt haben, ist dies kein Problem. es wird funktionieren
quelle
Wie static_rtti oben sagte, ändern Sie
zu
Ich selbst habe das
https
in der .git / config-Datei in geändertssh
, aber es hat immer noch nicht funktioniert. Dann sah ich , dass Sie müssen änderngithub.com
zu[email protected]
. Eine gute Möglichkeit, die tatsächlich richtige URL zu erhalten, besteht darin, auf Ihre Projektseite zu klicken und auf Folgendes zu klicken:Ändern Sie HTTPS in SSH, um die richtige URL zu erhalten
Fügen Sie dann diese URL zur Konfigurationsdatei hinzu.
quelle
Unter Windows Subsystem für Linux (WSL) war dies die einzige Lösung, die ich gefunden habe:
eval
`ssh-agent`; ssh-add ~/.ssh/id_rsa
Es war ein Problem damit, dass der ssh-Agent nicht ordnungsgemäß in der WSL registriert wurde.
quelle
Wenn Sie verhindern möchten, dass Git Sie immer nach den Anmeldeinformationen Ihres GitHub-Repositorys fragt, können Sie dies problemlos tun.
Verwenden von SSH anstelle von HTTPS
Sie können die Ursprungsfernbedienung mithilfe von SSH anstelle von HTTPS aktualisieren. "
Konfigurieren Sie Git so, dass Ihr Passwort und Ihr Benutzername gespeichert werden
So können Sie Git dazu bringen, den Benutzernamen und das Passwort zu speichern:
Speichern Sie als Nächstes den Benutzernamen und das Kennwort für eine Sitzung:
quelle
Ich bin mit "Codehugger" einverstanden und unter Verwendung der Anweisung "Orkoden" hat es bei mir funktioniert - unter NetBeans 7.3 - wenn Sie mit der rechten Maustaste auf die Datei klicken und das Kontextmenü auswählen - drücken - ein Fenster "auf Remote drücken" geöffnet - es gibt zwei Optionen hier:
origin:https://github.com/myaccount/myproject.git/
https://github.com/myaccount/myproject.git/
Wie Sie sehen können, ist der Unterschied der Ursprungsparameter in der URL - Sie möchten diese Option nicht auswählen (1), Sie möchten die Option (2) aktivieren, und das funktioniert gut für mich.
quelle
Schritt 1: Überprüfen Sie Ihre aktuelle Konfiguration
Sie erhalten:
Schritt 2: Entfernen Sie Ihren Remote-Ursprung
Schritt 3: Fügen Sie den Remote-Ursprung mit Ihrem Benutzernamen und Passwort wieder hinzu
quelle
git branch --set-upstream master origin/master
Wenn Git Sie bei jedem Versuch, mit GitHub zu interagieren, zur Eingabe eines Benutzernamens und eines Kennworts auffordert, verwenden Sie wahrscheinlich die HTTPS-Klon-URL für Ihr Repository.
Die Verwendung einer HTTPS-Remote-URL bietet einige Vorteile: Sie ist einfacher einzurichten als SSH und funktioniert normalerweise über strenge Firewalls und Proxys. Sie werden jedoch auch aufgefordert, jedes Mal, wenn Sie ein Repository abrufen oder verschieben, Ihre GitHub-Anmeldeinformationen einzugeben.
Sie können Git so konfigurieren, dass Ihr Passwort für Sie gespeichert wird. Für Windows :
quelle
Unter macOS Cataline 10.15 funktionierte die Schlüsselbund-Caching-Methode bei mir nicht. Und ich wollte
https://
nicht verwendenssh
Folgendes hat bei mir funktioniert:
Dies sollte auch auf GitLab funktionieren
Stellen Sie sicher, dass der Benutzername eine E-Mail-Adresse enthält, um das
@email
Teil zu entfernen. Andernfalls wird eine Fehlermeldung angezeigtURL using bad/illegal format or missing URL
.Hoffe das hilft!
quelle
Abhängig von Ihrer Konfiguration gibt es verschiedene Arten von Authentifizierungen. Hier sind ein paar:
git credential-osxkeychain
.Wenn Ihr Berechtigungsnachweis ungültig ist, entfernen Sie ihn durch:
oder:
Git wird Sie also nicht erneut nach der Schlüsselbund-Berechtigung fragen. Dann konfigurieren Sie es erneut.
Siehe: Aktualisieren von Anmeldeinformationen aus dem OS X-Schlüsselbund bei GitHub
Ihr SSH-RSA-Schlüssel.
Dazu müssen Sie Ihren SSH - Schlüssel mit vergleichen , was Sie hinzugefügt haben, die Prüfung durch
ssh-add -L
/ssh-add -l
wenn Sie die richtige Identität verwenden.Ihre HTTPS-Authentifizierung (wenn Sie
https
anstelle desssh
Protokolls verwenden).Verwenden Sie
~/.netrc
(%HOME%/_netrc
unter Windows), um Ihre Anmeldeinformationen anzugeben, zWeitere Informationen : Synchronisieren mit GitHub bei Stack Overflow.
quelle
Bevor Sie Ihren Schlüssel mit GitHub verwenden können, führen Sie den folgenden Schritt im Lernprogramm " Testen Ihrer SSH-Verbindung" aus :
quelle
Wenn Sie einen Tippfehler in der URL haben, werden Sie von Git nach Benutzername und Passwort gefragt, dummes Git.
Es wurde unter Kali Linux , Git Version 2.7.0, getestet.
Versuchen:
quelle
Wenn Sie Windows verwenden und dies plötzlich aus heiterem Himmel auf GitHub passiert, liegt dies wahrscheinlich an der kürzlich deaktivierten Unterstützung von GitHub für veraltete kryptografische Algorithmen am 22.02.2018. In diesem Fall besteht die Lösung einfach darin, sie herunterzuladen und zu installieren die neueste Version des vollständigen Git für Windows oder nur des Git Credential Manager für Windows .
quelle
Microsoft Stack-Lösung (Windows und Azure DevOps)
Öffnen Sie zuerst die
.git/config
Datei, um sicherzustellen, dass die Adresse wie folgt aussieht:Beispiel: .git / config für Azure DevOps:
Wenn das Problem weiterhin besteht, öffnen Sie den Windows- Anmeldeinformations-Manager , klicken Sie auf den Safe mit dem Namen Windows-Anmeldeinformationen und entfernen Sie alle git-bezogenen Anmeldeinformationen.
Wenn Sie sich das nächste Mal bei git anmelden, wird es nicht mehr verschwinden.
quelle
Wenn Sie einen SSH-Agenten eingerichtet haben, können Sie diesen auch zu Ihrem hinzufügen
~/.gitconfig
, um git zu zwingen, SSH für alle GitHub-Repos anstelle von HTTPS zu verwenden:(Wenn Sie hauptsächlich mit öffentlichen Repos arbeiten, können Sie auch
pushInsteadOf
anstelle von verwendeninsteadOf
, da das Lesen aus einem öffentlichen Repo ohne Authentifizierung erfolgen kann.)quelle