Ich habe gerade 2FA aktiviert (mir fallen keine weiteren Änderungen ein) und git hat nach meinem Benutzernamen und Passwort gefragt. Ich habe beide zur Verfügung gestellt, aber sie waren "falsch". Ich habe hier viele der Lösungen ausprobiert: Git Push erfordert Benutzername und Passwort, aber das hat nicht funktioniert. Insbesondere beim Wechsel von https zu ssh gibt der ssh-Schlüssel
Berechtigung verweigert (publickey). fatal: Konnte nicht aus dem Remote-Repository lesen.
$ git push
warning: push.default is unset; its implicit value is changing in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the current behavior after the default changes, use:
git config --global push.default matching
To squelch this message and adopt the new behavior now, use:
git config --global push.default simple
See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)
Username for 'https://github.com': **********
Password for 'https://[email protected]':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/mlbileschi/scala.git/'
Irgendwelche Tipps?
git
github
two-factor-authentication
Max Bileschi
quelle
quelle
Antworten:
Sie müssen ein Zugriffstoken generieren. Sie können eine erstellen, indem Sie auf Ihre Einstellungsseite gehen .
Verwenden Sie dieses Zugriffstoken als Kennwort in der Befehlszeile.
quelle
git pull
. Wahrscheinlich ein lokales Problem, aber dies könnte jemandem helfen.The requested URL returned error: 403
wenn ich das Token für Passwort verwende, für einen Push-Over über httpsEine End-to-End-Lösung besteht aus 3 Schritten.
Ein großes Lob an Gergo Erdosi. Seine Antwort ist weitgehend richtig, es ist nur so, dass Github diese Einstellungsseite ändert. Ab Ende 2016 müssen Sie ein Zugriffstoken von Ihrer Seite " Persönliche Zugriffstoken" generieren .
Verwenden Sie dieses Zugriffstoken als Kennwort in der Befehlszeile.
Sie können Ihren Benutzernamen beibehalten, indem Sie ihn in die Remote-URL Ihres Projekts aufnehmen. Eine Möglichkeit besteht darin, Ihre
.git/config
zu bearbeiten , um dieurl
Zeile in das folgende Format zu ändern :url = https://[email protected]/owner/repo.git
Sie können Ihr Passwort beibehalten, indem Sie dies nur einmal ausführen:
$ git config credential.helper store
und dann werden Ihre zukünftigen Git-Passwörter in ~ / .git-Anmeldeinformationen im Klartext im Format gespeichert
https://user:[email protected]
.Das Speichern von Passwörtern im Klartext wird normalerweise als Sicherheitsrisiko angesehen. In diesem 2FA-Fall ist der Berechtigungsnachweis jedoch NICHT Ihr echtes Kennwort, sondern eine zufällig generierte Zeichenfolge. Es ist also so sicher wie die Verwendung
eines privatenSSH-Schlüssels,eines passphrasenlosen privatenSSH-Schlüssels. CAVEAT: Denken Sie daran, dass, wenn Sie auf diesem Computer auch andere Git-Konten ohne 2FA verwenden, diese echten Passwörter auch im Klartext gespeichert werden.PS: Alternativ können Sie die ssh-basierte Anmeldung mit einem passphrasengeschützten privaten ssh-Schlüssel verwenden. Dies wäre sicherer und weniger bequem, liegt jedoch außerhalb des Bereichs dieser Antwort.
quelle
...the credential is NOT your real password, it is a randomly generated string. So it is as secure as using ssh private key.
- es ist überhaupt nicht wahr . SSH-Schlüssel können einfach durch eine sofort einsatzbereite Passphrase geschützt werden . Einfach~./git-credentials
- ist überhaupt nicht gesichert!Ich hatte ein ähnliches Problem. Ich musste die im Befehl git verwendete URL ändern, um meinen Benutzernamen einzuschließen.
Wenn Sie dann nach PW gefragt werden, verwenden Sie das Zugriffstoken, das Sie erstellt haben, indem Sie den Anweisungen in Gergo Erdosis Antwort folgen.
quelle
git remote set-url --push origin
mit demselben Wert zu setzen,git push origin master
schlägt dies immer noch fehl.git-bash
funktionierte gutUnter Linux können Sie Ihre GitHub-Identität mit einem SSH-Schlüssel authentifizieren.
1) Generieren eines neuen SSH-Schlüssels ( Quelle )
Terminal öffnen.
Fügen Sie den folgenden Text ein und ersetzen Sie ihn durch Ihre GitHub-E-Mail-Adresse.
Dadurch wird ein neuer SSH-Schlüssel erstellt, wobei die bereitgestellte E-Mail als Bezeichnung verwendet wird.
2) Verknüpfen des Schlüssels mit Ihrem GitHub-Konto
Öffnen Sie das Terminal und kopieren Sie den generierten öffentlichen Schlüssel
Sollte etwas als ausgeben
Navigieren Sie zu https://github.com/settings/keys und klicken Sie auf
New SSH Key
, geben Sie ihm einen Titel und kopieren Sie den öffentlichen Schlüssel.3) Ändern Sie den Git-Ursprung von
https://
nachssh
Öffnen Sie das Terminal
cd
zu Ihrem Repository-Speicherort und -Typquelle
https
ist manchmal nützlich, zB bei Aufbewahrung über vor- ,https
während die Gabel über aufweistssh
, so dass Sie nicht versehentlich vor- schieben, dahttps
nach dem Passwort fragen und erinnern Sie daran , dass Sie die falsche Repo gezieltDas hat bei mir funktioniert:
Gehen Sie zu [your-git-repo] /. Git / config
Klicken Sie unter
[remote "origin"]
Ändern desURL
Schlüssels vom http-Protokoll auf git.Beispiel
Wenn der Wert von
url
ist https://github.com/ .git es ändern zu[email protected]:<repo-url>.git
quelle
Wenn Sie bereits SSH-Schlüssel verwenden, werden Sie nach dem Aktivieren von 2FA gezwungen, Remote mit SSH zu lesen / schreiben. Sie müssen keine persönlichen Token hinzufügen, sondern verwenden weiterhin Ihr vorhandenes SSH-Schlüsselpaar.
Ändern Sie einfach Ihre Remote-URL von HTTPS in SSH:
quelle
Dies funktionierte für mich nach der Aktivierung von 2FA auf Github:
Erstellen Sie ein persönliches Zugriffstoken: https://help.github.com/de/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line .
HINWEIS: Denken Sie daran, die richtigen Berechtigungen für das Token auszuwählen.
Ausführen:
git clone https://github.com/username/repo.git
Benutzername:
your_username
Passwort:
your_token
Lesen Sie weiter: https://help.github.com/en/github/using-git/which-remote-url-should-i-use
quelle
Ich hatte dieses Problem bei einem vorhandenen Repo, als ich 2FA (Zwei-Faktor-Authentifizierung) für eines meiner privaten Repos aktivierte. Ich konnte es mit den folgenden Schritten auf meinem Ubuntu 19.0-Terminal lösen: -
Sobald der Schlüssel hinzugefügt wurde, gehen Sie zu Ihrem Terminal und aktualisieren Sie die Ursprungs-URL
git remote set-url origin [email protected]:<USERNAME>/<BRANCH-NAME>
Das ist es. Hoffentlich hilft es
quelle