565 Stimmen

Mit einem Token bei GitHub authentifizieren

Ich versuche, mich bei GitHub mit einem persönlichen Zugriffstoken zu authentifizieren. In den Hilfeseiten von GitHub wird angegeben, die cURL-Methode zur Authentifizierung zu verwenden (Erstellen eines persönlichen Zugriffstokens). Ich habe dies versucht, aber ich kann immer noch nicht auf GitHub pushen. Bitte beachten Sie, dass ich versuche, von einem nicht authentifizierten Server aus zu pushen (Travis CI).

cd $HOME
git config --global user.email "emailadresse@yahoo.com"
git config --global user.name "benutzername"

curl -u "benutzername:" https://github.com/benutzername/ol3-1.git
git clone --branch=gh-pages https://github.com/benutzername/ol3-1.git gh-pages

cd gh-pages
mkdir buildtest
cd buildtest
touch asdf.asdf

git add -f .
git commit -m "Travis Build $TRAVIS_BUILD_NUMBER auf gh-pages geschoben"
git push -fq origin gh-pages

Dieser Code verursacht die Fehler:

remote: Anonymer Zugriff auf scuzzlebuzzle/ol3-1.git verweigert.

fatal: Authentifizierung fehlgeschlagen für 'https://github.com/scuzzlebuzzle/ol3-1.git/'"

544voto

Ian Stapleton Cordasco Punkte 25941

Ihr curl-Befehl ist völlig falsch. Sie sollten Folgendes verwenden

curl -H 'Authorization: token ' ...

Abgesehen davon autorisiert das Ihren Computer nicht zum Klonen des Repositories, wenn es tatsächlich privat ist. (Ein Blick darauf zeigt jedoch, dass es nicht privat ist.) Was Sie normalerweise tun würden, ist Folgendes:

git clone https://scuzzlebuzzle:@github.com/scuzzlebuzzle/ol3-1.git --branch=gh-pages gh-pages

Dadurch werden Ihre Anmeldeinformationen dem bei Klonen des Repositorys erstellten Remote hinzugefügt. Leider haben Sie jedoch keine Kontrolle darüber, wie Travis Ihr Repository klonen kann, daher müssen Sie den Remote wie folgt bearbeiten.

# Nach dem Klonen
cd gh-pages
git remote set-url origin https://scuzzlebuzzle:@github.com/scuzzlebuzzle/ol3-1.git

Dadurch wird Ihr Projekt korrigiert, um einen Remote mit integrierten Anmeldeinformationen zu verwenden.

Warnung: Tokens haben Lese- und Schreibzugriff und sollten wie Passwörter behandelt werden. Wenn Sie Ihren Token beim Klonen oder Hinzufügen eines Remotes zur Clone-URL hinzufügen, schreibt Git ihn im Klartext in Ihre .git/config-Datei, was ein Sicherheitsrisiko darstellt.

355voto

Echelon Punkte 6456

Zunächst müssen Sie ein persönliches Zugriffstoken (PAT) erstellen. Dies ist hier beschrieben: https://help.github.com/articles/creating-an-access-token-for-command-line-use/

Lächerlicherweise erklärt der Artikel, wie man es erstellt, gibt aber überhaupt keinen Hinweis darauf, was damit zu tun ist. Nach etwa einer Stunde Durchsuchen von Dokumentationen und Stack Overflow fand ich schließlich die Antwort:

$ git clone https://github.com/user-or-organisation/myrepo.git
Benutzername: 
Passwort: 

Ich wurde tatsächlich gezwungen, Zwei-Faktor-Authentifizierung gemäß den Unternehmensrichtlinien zu aktivieren, während ich remote gearbeitet und immer noch lokale Änderungen vorgenommen habe, daher war es tatsächlich nicht kopieren, was ich brauchte, sondern push. Ich habe an vielen Stellen gelesen, dass ich den Remote löschen und neu erstellen musste, aber tatsächlich hat mein normaler push-Befehl genau wie der obige clone funktioniert und der Remote hat sich nicht geändert:

$ git push https://github.com/user-or-organisation/myrepo.git
Benutzername: 
Passwort: 

(@YMHuang hat mich mit dem Dokumentationslink auf den richtigen Weg gebracht.)

172voto

Scriddie Punkte 2203

Generierung eines Tokens

Generieren Sie ein Token mithilfe der Anweisungen aus Erstellen eines persönlichen Zugriffstokens. (GitHub-Profil -> Einstellungen -> Entwicklereinstellungen -> Persönliche Zugriffstoken)

Tatsächliche Verwendung des Tokens


(Ersetzen Sie die eckigen Klammern und den dazwischen stehenden Inhalt durch Ihre entsprechenden Details. Der Teil nach dem @ ist identisch mit der Repository-URL ohne https://)

129voto

ccreedon1 Punkte 1377

Dies hat für mich mit ssh funktioniert:

EinstellungenEntwicklereinstellungenNeuen Token generieren.

git remote set-url origin https://[ANWENDUNG]:[NEUER TOKEN]@github.com/[ORGANISATION]/[REPO].git

89voto

John Huang Punkte 1298

Automatisierung / Git-Automatisierung mit OAuth-Token

$ git clone https://github.com/username/repo.git
  Benutzername: dein_token
  Passwort:

Es funktioniert auch im git push Befehl.

Referenz: https://help.github.com/articles/git-automation-with-oauth-tokens/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X