Ich kann kein einfaches Repository aus Azure DevOps klonen. __ OS: Ubuntu 18.10
Ich mache das:
git clone https://myorganization.visualstudio.com/myproject/_git/myrepo/
Ich erhalte ständig diese Nachricht von Git: fatal: Authentication failed for 'https://myorganization.visualstudio.com/myproject/_git/myrepo/'
Ich habe die Lösungen anderer Leute gelesen, aber keiner hat für mich gearbeitet. Ich habe auch folgendes versucht:
Berechtigung: Basic Base64Encoded (uname: PAT)
Vollmacht: Inhaber PAT
Irgendein Hinweis, warum das nicht funktioniert?
Ich habe das gleiche Problem erlebt und habe eine ganze Weile nach einer Lösung gesucht. Schließlich bin ich auf diesen Beitrag gestoßen, der im Kommentarabschnitt eine Lösung von Martinius79 enthielt.
Kurz gesagt, es war erforderlich, den Benutzernamen und das als base64 codierte PAT über git http.extraheaders zu übergeben, damit es sich authentifizieren kann.
100% Credit des ursprünglichen Autors, der hier nur hinzugefügt wird, um andere bei der Suche zu unterstützen:
Beispiel: git -c http.extraheader = "ZULASSUNG: Grund TXlHaXRTeW5jVXNlcjo2bHFqNXJkcHEzdXBxZWVmd2o3bDduZXN5NTR3d3gxNHFobDVlanl5NTVkb2g0M3d4YzRh" Klon https: //tfs.address/tfs/Collection/Project/_git/RepoName
Verwendetes Basistoken BASE64 codiert: TXlHaXRTeW5jVXNlcjo2bHFqNXJkcHEzdXBxZWVmd2o3bDduZXN5NTR3d3gxNHFobDVlanl5NTVkb2g0M3d4YzRh
Basic Token BASE64 decodiert: MyGitSyncUser: 6lqj5rdpq3upqeefwj7l7nesy54wwx14qhl5ejyy55doh43wxc4a
Das Token ist aufgebaut aus: In diesem Beispiel: Fiktiver Benutzername: MyGitSyncUser Verwendete PAT: 6lqj5rdpq3upqeefwj7l7nesy54wwx14qhl5ejyy55doh43wxc4a
Ich hoffe das hilft!
Mit PAT habe ich Erfolg gehabt;
git clone https://<domain>.visualstudio.com/<domain>/_git/<domain>
git clone https://<PAT>@<domain>.visualstudio.com/<domain>/_git/<domain>
Benutzername oder Passwort sollten erforderlich sein, da die PAT ausreichen sollte.
Versuchen Sie es mit: Löschen Sie zunächst die git-Anmeldeinformationen aus dem Credential Manager Versuchen Sie, einen neuen persönlichen Zugriffstoken zu erstellen, um diesen Fehler zu beheben
Gehen Sie zu Sicherheit -> Persönliches Zugriffstoken -> Hinzufügen .__ Geben Sie Beschreibung an, wählen Sie Alle Bereiche aus, und klicken Sie auf Token erstellen.
Kopieren Sie das Token und bewahren Sie es zur späteren Verwendung auf. Dieses Token kann jetzt anstelle des Passworts für den git-Benutzer verwendet werden.
Sie müssen Ihr Token Base64-kodieren und es als HTTP-Autorisierungsheader hinzufügen. Dies kann mit OpenSSL erfolgen:
PAT="enter-your-pat-here"
REPO_URL="https://[email protected]/myorg/myproject/_git/myrepo"
AUTH=$(echo -n ":$PAT" | openssl base64 | tr -d '\n')
git -c http.$REPO_URL.extraHeader="Authorization: Basic $AUTH" clone $REPO_URL
echo -n "..." | ... | tr -d '\n'
ist ein üblicher Linux-Trick, um einen String als Eingabe an einen Befehl zu senden, für den normalerweise Benutzereingaben erforderlich sind (schreiben Sie einfach openssl base64
und Sie werden sehen).
Beachten Sie das führende ":" in echo -n ":$PAT"
. Dies liegt daran, dass der "Benutzer" im normalen Format von "Benutzer: Token" fehlt.
Um zu vermeiden, dass die Konfigurationsoption bei jedem Befehl git erneut eingegeben wird, können Sie den Autorisierungsheader Ihrer lokalen oder globalen Konfiguration von git config hinzufügen:
git config --global http.$REPO_URL.extraHeader "Authorization: Basic $AUTH"
Zeigen Sie Ihre Änderungen an mit:
git config --global --edit
Dies ist eine bekannte Regression in curl 7.61.0, die mit Ubuntu 18.10 ausgeliefert wird. Die Regression wurde in curl 7.61.1 behoben, aber Ubuntu 18.10 hat diese Korrektur noch nicht. Siehe (und positiv) https://bugs.launchpad.net/ubuntu/+source/curl/+bug/1805203