Ich versuche, mich mit einem persönlichen Zugriffstoken bei GitHub zu authentifizieren. In den Hilfedateien bei github wird angegeben, dass zur Authentifizierung die cURL-Methode verwendet werden soll ( https://help.github.com/articles/creating-an-access-token-for-command-line-use ). Ich habe es versucht, kann aber immer noch nicht auf GitHub pushen. Bitte beachten Sie, dass ich versuche, von einem nicht authentifizierten Server (Travis-CI) zu pushen.
cd $HOME
git config --global user.email "[email protected]"
git config --global user.name "username"
curl -u "username:<MYTOKEN>" https://github.com/username/ol3-1.git
git clone --branch=gh-pages https://github.com/username/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 pushed to gh-pages"
git push -fq origin gh-pages
Dieser Code verursacht die Fehler:
remote: Anonymer Zugriff auf scuzzlebuzzle / ol3-1.git verweigert.
Schwerwiegend: Authentifizierung für ' https://github.com/scuzzlebuzzle/ol3-1.git/ ' fehlgeschlagen. "
quelle
git remote set-url origin https://scuzzlebuzzle:<MYTOKEN>@github.com/scuzzlebuzzle/ol3-1.git
Zunächst müssen Sie ein persönliches Zugriffstoken (PAT) erstellen. Dies wird hier beschrieben: https://help.github.com/articles/creating-an-access-token-for-command-line-use/
Lachenderweise sagt Ihnen der Artikel, wie man es erstellt, gibt aber absolut keine Ahnung, was man damit machen soll. Nach ungefähr einer Stunde Schleppnetzdokumentation und Stapelüberlauf fand ich endlich die Antwort:
Ich war tatsächlich gezwungen, die Zwei-Faktor-Authentifizierung gemäß den Unternehmensrichtlinien zu aktivieren , während ich remote arbeitete und noch lokale Änderungen hatte. Tatsächlich war dies nicht
clone
erforderlich, aberpush
. Ich habe an vielen Stellen gelesen, dass ich die Fernbedienung löschen und neu erstellen musste, aber tatsächlichpush
funktionierte mein normaler Befehl genauso wie derclone
oben, und die Fernbedienung änderte sich nicht:(@YMHuang hat mich mit dem Dokumentationslink auf den richtigen Weg gebracht.)
quelle
Um zu vermeiden, "die Schlüssel zum Schloss" zu übergeben ...
Beachten Sie, dass Sie für die Antwort von sigmavirus24 Travis ein Token mit ziemlich weitreichenden Berechtigungen geben müssen, da GitHub nur Token mit weiten Bereichen wie "Alle meine öffentlichen Repos schreiben" oder "Alle meine privaten Repos schreiben" anbietet.
Wenn Sie den Zugriff einschränken möchten (mit etwas mehr Arbeit!), Können Sie GitHub-Bereitstellungsschlüssel in Kombination mit Travis-verschlüsselten Yaml-Feldern verwenden.
Hier ist eine Skizze wie die Technik funktioniert ...
Generieren Sie zunächst einen
ssh-keygen
aufgerufenen RSA-Bereitstellungsschlüssel (via )my_key
und fügen Sie ihn als Bereitstellungsschlüssel in Ihren Github-Repo-Einstellungen hinzu.Dann...
Verwenden Sie dann die
$password
Datei, um Ihren Bereitstellungsschlüssel zur Integrationszeit zu entschlüsseln, indem Sie Ihrer yaml-Datei Folgendes hinzufügen:Hinweis: In der letzten Zeile wird der RSA-Schlüssel von github vorab ausgefüllt, sodass zum Zeitpunkt einer Verbindung keine manuelle Annahme erforderlich ist.
quelle
Automatisierung / Git-Automatisierung mit OAuth-Token
Es funktioniert auch im
git push
Befehl.Referenz: https://help.github.com/articles/git-automation-with-oauth-tokens/
quelle
Dies funktionierte bei mir mit ssh :
Einstellungen → Entwicklereinstellungen → Neues Token generieren .
quelle
git remote add origin https://[USERNAME]:[NEW TOKEN]@github.com/[USERNAME]/[REPO].git
git remote add origin https://[USERNAME]:[TOKEN]@git.mycompany.com/[ORGANIZATION]/[REPO].git
git remote set-url origin https://[TOKEN]@git.mycompany.com/[ORGANIZATION]/[REPO].git> /dev/null 2>&1
das Protokollieren unsicherer Git-Ausgaben vermeiden. Speichern Sie das Token in einer Variablen, um zu vermeiden, dass es im Protokoll enthalten ist. Aber es muss irgendwo aufbewahrt werden. Zur weiteren Sicherung können Sie es verschlüsselt speichern. Dieser Ansatz wird beispielsweise von Travis CI unterstützt.Normalerweise mag ich das
Das git_token liest aus der Variablen config in Azure Devops.
Sie können meinen vollständigen Blog hier lesen
quelle
Nachdem wir mit diesem Problem fast einen ganzen Tag lang im ORG / REPO-Abschnitt in unserem Build-Skript mit dem gefürchteten Fehler "Remote nicht gefunden" zu kämpfen hatten, fanden wir schließlich eine funktionierende Lösung, um das zu verwenden
TRAVIS_REPO_SLUG
. Das Einschalten für die fest codierten Attribute funktionierte sofort.quelle
Wenn Sie so viele Stunden mit dem Anwenden des GitHub-Tokens zu kämpfen haben, funktioniert es wie folgt:
%d%H%M
auf Matchwort'-123456-whatever'
Es folgt der vollständige Code:
Ausgabe...
quelle
Das Kennwort, mit dem Sie sich beim github.com-Portal anmelden, funktioniert in VS Code CLI / Shell nicht. Sie sollten das PAT-Token von der URL https://github.com/settings/tokens kopieren, indem Sie ein neues Token generieren und diese Zeichenfolge als Kennwort in die CLI einfügen.
quelle
Wenn Sie GitHub Enterprise verwenden und das Repo klonen oder Pushing einen 403-Fehler ausgibt, anstatt nach einem Benutzernamen / Token zu fragen, können Sie Folgendes verwenden:
quelle